H2O - AutoML

Pour utiliser AutoML, démarrez un nouveau bloc-notes Jupyter et suivez les étapes ci-dessous.

Importer AutoML

Importez d'abord le package H2O et AutoML dans le projet à l'aide des deux instructions suivantes -

import h2o
from h2o.automl import H2OAutoML

Initialiser H2O

Initialisez h2o en utilisant l'instruction suivante -

h2o.init()

Vous devriez voir les informations du cluster à l'écran comme indiqué dans la capture d'écran ci-dessous -

Chargement des données

Nous utiliserons le même ensemble de données iris.csv que vous avez utilisé précédemment dans ce didacticiel. Chargez les données à l'aide de l'instruction suivante -

data = h2o.import_file('iris.csv')

Préparation de l'ensemble de données

Nous devons décider des fonctionnalités et des colonnes de prédiction. Nous utilisons les mêmes fonctionnalités et la colonne de prédication que dans notre cas précédent. Définissez les fonctionnalités et la colonne de sortie à l'aide des deux instructions suivantes -

features = ['sepal_length', 'sepal_width', 'petal_length', 'petal_width']
output = 'class'

Divisez les données dans un rapport 80:20 pour la formation et les tests -

train, test = data.split_frame(ratios=[0.8])

Application d'AutoML

Maintenant, nous sommes tous prêts à appliquer AutoML sur notre ensemble de données. L'AutoML fonctionnera pendant une durée fixe définie par nos soins et nous donnera le modèle optimisé. Nous configurons AutoML en utilisant l'instruction suivante -

aml = H2OAutoML(max_models = 30, max_runtime_secs=300, seed = 1)

Le premier paramètre spécifie le nombre de modèles que nous voulons évaluer et comparer.

Le deuxième paramètre spécifie la durée pendant laquelle l'algorithme s'exécute.

Nous appelons maintenant la méthode train sur l'objet AutoML comme indiqué ici -

aml.train(x = features, y = output, training_frame = train)

Nous spécifions le x comme le tableau de caractéristiques que nous avons créé précédemment, le y comme variable de sortie pour indiquer la valeur prédite et le dataframe comme train base de données.

Exécutez le code, vous devrez attendre 5 minutes (nous définissons le max_runtime_secs sur 300) jusqu'à ce que vous obteniez la sortie suivante -

Impression du classement

Une fois le traitement AutoML terminé, il crée un classement classant tous les 30 algorithmes évalués. Pour voir les 10 premiers enregistrements du classement, utilisez le code suivant -

lb = aml.leaderboard
lb.head()

Lors de l'exécution, le code ci-dessus générera la sortie suivante -

De toute évidence, l'algorithme DeepLearning a obtenu le score maximum.

Prédire sur les données de test

Maintenant que vous avez classé les modèles, vous pouvez voir les performances du modèle le mieux noté sur vos données de test. Pour ce faire, exécutez l'instruction de code suivante -

preds = aml.predict(test)

Le traitement se poursuit pendant un certain temps et vous verrez la sortie suivante à la fin.

Résultat d'impression

Imprimez le résultat prévu à l'aide de l'instruction suivante -

print (preds)

Lors de l'exécution de l'instruction ci-dessus, vous verrez le résultat suivant -

Impression du classement pour tous

Si vous voulez voir les rangs de tous les algorithmes testés, exécutez l'instruction de code suivante -

lb.head(rows = lb.nrows)

Lors de l'exécution de l'instruction ci-dessus, la sortie suivante sera générée (partiellement affichée) -

Conclusion

H2O fournit une plate-forme open source facile à utiliser pour appliquer différents algorithmes de ML sur un ensemble de données donné. Il fournit plusieurs algorithmes statistiques et ML, y compris l'apprentissage en profondeur. Pendant les tests, vous pouvez affiner les paramètres de ces algorithmes. Vous pouvez le faire à l'aide de la ligne de commande ou de l'interface Web fournie appelée Flow. H2O prend également en charge AutoML qui fournit le classement parmi les différents algorithmes en fonction de leurs performances. H2O fonctionne également bien sur le Big Data. C'est certainement une aubaine pour les Data Scientist d'appliquer les différents modèles de Machine Learning sur leur ensemble de données et de choisir le meilleur pour répondre à leurs besoins.