H2O - Exécution de l'exemple d'application

Cliquez sur le lien Airlines Delay Flow dans la liste des échantillons comme indiqué dans la capture d'écran ci-dessous -

Une fois que vous avez confirmé, le nouveau bloc-notes serait chargé.

Effacement de toutes les sorties

Avant d'expliquer les instructions de code dans le bloc-notes, effaçons toutes les sorties, puis exécutons le bloc-notes progressivement. Pour effacer toutes les sorties, sélectionnez l'option de menu suivante -

Flow / Clear All Cell Contents

Ceci est montré dans la capture d'écran suivante -

Une fois que toutes les sorties sont effacées, nous exécuterons chaque cellule du cahier individuellement et examinerons sa sortie.

Exécution de la première cellule

Cliquez sur la première cellule. Un drapeau rouge apparaît sur la gauche indiquant que la cellule est sélectionnée. C'est comme indiqué dans la capture d'écran ci-dessous -

Le contenu de cette cellule n'est que le commentaire du programme écrit en langage MarkDown (MD). Le contenu décrit ce que fait l'application chargée. Pour exécuter la cellule, cliquez sur l'icône Exécuter comme indiqué dans la capture d'écran ci-dessous -

Vous ne verrez aucune sortie sous la cellule car il n'y a pas de code exécutable dans la cellule actuelle. Le curseur se déplace maintenant automatiquement vers la cellule suivante, qui est prête à être exécutée.

Importer des données

La cellule suivante contient l'instruction Python suivante -

importFiles ["https://s3.amazonaws.com/h2o-airlines-unpacked/allyears2k.csv"]

L'instruction importe le fichier allyears2k.csv d'Amazon AWS dans le système. Lorsque vous exécutez la cellule, elle importe le fichier et vous donne la sortie suivante.

Configuration de l'analyseur de données

Maintenant, nous devons analyser les données et les adapter à notre algorithme ML. Cela se fait à l'aide de la commande suivante -

setupParse paths: [ "https://s3.amazonaws.com/h2o-airlines-unpacked/allyears2k.csv" ]

Lors de l'exécution de l'instruction ci-dessus, une boîte de dialogue de configuration d'installation apparaît. La boîte de dialogue vous permet plusieurs paramètres d'analyse du fichier. C'est comme indiqué dans la capture d'écran ci-dessous -

Dans cette boîte de dialogue, vous pouvez sélectionner l'analyseur souhaité dans la liste déroulante donnée et définir d'autres paramètres tels que le séparateur de champ, etc.

Analyse des données

L'instruction suivante, qui analyse en fait le fichier de données en utilisant la configuration ci-dessus, est longue et est comme indiqué ici -

parseFiles
paths: ["https://s3.amazonaws.com/h2o-airlines-unpacked/allyears2k.csv"]
destination_frame: "allyears2k.hex"
parse_type: "CSV"
separator: 44
number_columns: 31
single_quotes: false
column_names: ["Year","Month","DayofMonth","DayOfWeek","DepTime","CRSDepTime",
   "ArrTime","CRSArrTime","UniqueCarrier","FlightNum","TailNum",
   "ActualElapsedTime","CRSElapsedTime","AirTime","ArrDelay","DepDelay",
   "Origin","Dest","Distance","TaxiIn","TaxiOut","Cancelled","CancellationCode",
   "Diverted","CarrierDelay","WeatherDelay","NASDelay","SecurityDelay",
   "LateAircraftDelay","IsArrDelayed","IsDepDelayed"]
column_types: ["Enum","Enum","Enum","Enum","Numeric","Numeric","Numeric"
   ,"Numeric","Enum","Enum","Enum","Numeric","Numeric","Numeric","Numeric",
   "Numeric","Enum","Enum","Numeric","Numeric","Numeric","Enum","Enum",
   "Numeric","Numeric","Numeric","Numeric","Numeric","Numeric","Enum","Enum"]
delete_on_done: true
check_header: 1
chunk_size: 4194304

Observez que les paramètres que vous avez définis dans la boîte de configuration sont répertoriés dans le code ci-dessus. Maintenant, exécutez cette cellule. Après un certain temps, l'analyse se termine et vous verrez la sortie suivante -

Examen de Dataframe

Après le traitement, il génère une trame de données, qui peut être examinée à l'aide de l'instruction suivante -

getFrameSummary "allyears2k.hex"

Lors de l'exécution de l'instruction ci-dessus, vous verrez la sortie suivante -

Désormais, vos données sont prêtes à être introduites dans un algorithme d'apprentissage automatique.

L'instruction suivante est un commentaire de programme qui indique que nous utiliserons le modèle de régression et spécifie la régularisation prédéfinie et les valeurs lambda.

Construire le modèle

Ensuite, vient la déclaration la plus importante et c'est la construction du modèle lui-même. Ceci est spécifié dans la déclaration suivante -

buildModel 'glm', {
   "model_id":"glm_model","training_frame":"allyears2k.hex",
   "ignored_columns":[
      "DayofMonth","DepTime","CRSDepTime","ArrTime","CRSArrTime","TailNum",
      "ActualElapsedTime","CRSElapsedTime","AirTime","ArrDelay","DepDelay",
      "TaxiIn","TaxiOut","Cancelled","CancellationCode","Diverted","CarrierDelay",
      "WeatherDelay","NASDelay","SecurityDelay","LateAircraftDelay","IsArrDelayed"],
   "ignore_const_cols":true,"response_column":"IsDepDelayed","family":"binomial",
   "solver":"IRLSM","alpha":[0.5],"lambda":[0.00001],"lambda_search":false,
   "standardize":true,"non_negative":false,"score_each_iteration":false,
   "max_iterations":-1,"link":"family_default","intercept":true,
   "objective_epsilon":0.00001,"beta_epsilon":0.0001,"gradient_epsilon":0.0001,
   "prior":-1,"max_active_predictors":-1
}

Nous utilisons glm, qui est une suite de modèles linéaires généralisés avec un type de famille défini sur binomial. Vous pouvez les voir mis en évidence dans la déclaration ci-dessus. Dans notre cas, la sortie attendue est binaire et c'est pourquoi nous utilisons le type binomial. Vous pouvez examiner les autres paramètres par vous-même; par exemple, regardez alpha et lambda que nous avions spécifiés précédemment. Reportez-vous à la documentation du modèle GLM pour l'explication de tous les paramètres.

Maintenant, exécutez cette instruction. Lors de l'exécution, la sortie suivante sera générée -

Certes, le temps d'exécution serait différent sur votre machine. Maintenant, vient la partie la plus intéressante de cet exemple de code.

Examen de la sortie

Nous sortons simplement le modèle que nous avons construit en utilisant l'instruction suivante -

getModel "glm_model"

Notez que glm_model est l'ID de modèle que nous avons spécifié comme paramètre model_id lors de la construction du modèle dans l'instruction précédente. Cela nous donne un énorme résultat détaillant les résultats avec plusieurs paramètres variables. Une sortie partielle du rapport est affichée dans la capture d'écran ci-dessous -

Comme vous pouvez le voir dans la sortie, cela indique que c'est le résultat de l'exécution de l'algorithme de modélisation linéaire généralisée sur votre ensemble de données.

Juste au-dessus de l'HISTORIQUE DES SCORES, vous voyez la balise MODEL PARAMETERS, développez-la et vous verrez la liste de tous les paramètres qui sont utilisés lors de la construction du modèle. Ceci est montré dans la capture d'écran ci-dessous.

De même, chaque balise fournit une sortie détaillée d'un type spécifique. Développez vous-même les différentes balises pour étudier les sorties de différents types.

Construire un autre modèle

Ensuite, nous allons construire un modèle de Deep Learning sur notre dataframe. L'instruction suivante dans l'exemple de code est simplement un commentaire de programme. L'instruction suivante est en fait une commande de création de modèle. C'est comme indiqué ici -

buildModel 'deeplearning', {
   "model_id":"deeplearning_model","training_frame":"allyear
   s2k.hex","ignored_columns":[
      "DepTime","CRSDepTime","ArrTime","CRSArrTime","FlightNum","TailNum",
      "ActualElapsedTime","CRSElapsedTime","AirTime","ArrDelay","DepDelay",
      "TaxiIn","TaxiOut","Cancelled","CancellationCode","Diverted",
      "CarrierDelay","WeatherDelay","NASDelay","SecurityDelay",
      "LateAircraftDelay","IsArrDelayed"],
   "ignore_const_cols":true,"res   ponse_column":"IsDepDelayed",
   "activation":"Rectifier","hidden":[200,200],"epochs":"100",
   "variable_importances":false,"balance_classes":false,
   "checkpoint":"","use_all_factor_levels":true,
   "train_samples_per_iteration":-2,"adaptive_rate":true,
   "input_dropout_ratio":0,"l1":0,"l2":0,"loss":"Automatic","score_interval":5,
   "score_training_samples":10000,"score_duty_cycle":0.1,"autoencoder":false,
   "overwrite_with_best_model":true,"target_ratio_comm_to_comp":0.02,
   "seed":6765686131094811000,"rho":0.99,"epsilon":1e-8,"max_w2":"Infinity",
   "initial_weight_distribution":"UniformAdaptive","classification_stop":0,
   "diagnostics":true,"fast_mode":true,"force_load_balance":true,
   "single_node_mode":false,"shuffle_training_data":false,"missing_values_handling":
   "MeanImputation","quiet_mode":false,"sparse":false,"col_major":false,
   "average_activation":0,"sparsity_beta":0,"max_categorical_features":2147483647,
   "reproducible":false,"export_weights_and_biases":false
}

Comme vous pouvez le voir dans le code ci-dessus, nous spécifions le deeplearning pour construire le modèle avec plusieurs paramètres définis sur les valeurs appropriées comme spécifié dans la documentation du modèle de deeplearning. Lorsque vous exécutez cette instruction, cela prendra plus de temps que la création du modèle GLM. Vous verrez la sortie suivante une fois la construction du modèle terminée, mais avec des horaires différents.

Examen de la sortie du modèle d'apprentissage en profondeur

Cela génère le type de sortie, qui peut être examiné à l'aide de l'instruction suivante comme dans le cas précédent.

getModel "deeplearning_model"

Nous examinerons la sortie de la courbe ROC comme indiqué ci-dessous pour une référence rapide.

Comme dans le cas précédent, développez les différents onglets et étudiez les différentes sorties.

Enregistrer le modèle

Après avoir étudié la sortie de différents modèles, vous décidez d'en utiliser un dans votre environnement de production. H20 vous permet de sauvegarder ce modèle en tant que POJO (Plain Old Java Object).

Développez la dernière balise PREVIEW POJO dans la sortie et vous verrez le code Java pour votre modèle affiné. Utilisez ceci dans votre environnement de production.

Ensuite, nous découvrirons une fonctionnalité très intéressante de H2O. Nous allons apprendre à utiliser AutoML pour tester et classer divers algorithmes en fonction de leurs performances.