H2O - AutoML

Per utilizzare AutoML, avvia un nuovo notebook Jupyter e segui i passaggi mostrati di seguito.

Importazione di AutoML

Per prima cosa importa il pacchetto H2O e AutoML nel progetto utilizzando le seguenti due istruzioni:

import h2o
from h2o.automl import H2OAutoML

Inizializza H2O

Inizializza h2o usando la seguente istruzione:

h2o.init()

Dovresti vedere le informazioni sul cluster sullo schermo come mostrato nello screenshot qui sotto -

Caricamento dati

Useremo lo stesso dataset iris.csv che hai usato in precedenza in questo tutorial. Carica i dati utilizzando la seguente istruzione:

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

Preparazione del set di dati

Dobbiamo decidere le caratteristiche e le colonne di previsione. Usiamo le stesse funzionalità e la colonna di previsione del nostro caso precedente. Impostare le caratteristiche e la colonna di output utilizzando le seguenti due istruzioni:

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

Dividi i dati in un rapporto 80:20 per addestramento e test -

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

Applicazione di AutoML

Ora siamo pronti per applicare AutoML al nostro set di dati. AutoML verrà eseguito per un periodo di tempo fisso da noi impostato e ci fornirà il modello ottimizzato. Abbiamo impostato l'AutoML utilizzando la seguente dichiarazione:

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

Il primo parametro specifica il numero di modelli che vogliamo valutare e confrontare.

Il secondo parametro specifica il tempo per il quale viene eseguito l'algoritmo.

Ora chiamiamo il metodo train sull'oggetto AutoML come mostrato qui -

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

Specifichiamo la x come matrice di caratteristiche che abbiamo creato in precedenza, la y come variabile di output per indicare il valore previsto e il dataframe come train set di dati.

Esegui il codice, dovrai aspettare 5 minuti (impostiamo max_runtime_secs a 300) fino a quando non ottieni il seguente output:

Stampa della classifica

Al termine dell'elaborazione AutoML, viene creata una classifica che classifica tutti i 30 algoritmi valutati. Per vedere i primi 10 record della classifica, utilizza il codice seguente:

lb = aml.leaderboard
lb.head()

Al momento dell'esecuzione, il codice precedente genererà il seguente output:

Chiaramente, l'algoritmo DeepLearning ha il punteggio massimo.

Previsione sui dati dei test

Ora che hai classificato i modelli, puoi vedere le prestazioni del modello più votato sui tuoi dati di test. A tale scopo, eseguire la seguente istruzione di codice:

preds = aml.predict(test)

L'elaborazione continua per un po 'e al termine verrà visualizzato il seguente output.

Risultato di stampa

Stampa il risultato previsto utilizzando la seguente dichiarazione:

print (preds)

Dopo l'esecuzione della dichiarazione di cui sopra, vedrai il seguente risultato:

Stampa della classifica per tutti

Se vuoi vedere i ranghi di tutti gli algoritmi testati, esegui la seguente dichiarazione di codice:

lb.head(rows = lb.nrows)

All'esecuzione dell'istruzione di cui sopra, verrà generato il seguente output (mostrato parzialmente):

Conclusione

H2O fornisce una piattaforma open source di facile utilizzo per applicare diversi algoritmi ML su un dato set di dati. Fornisce diversi algoritmi statistici e ML, incluso il deep learning. Durante il test, è possibile ottimizzare i parametri per questi algoritmi. Puoi farlo utilizzando la riga di comando o l'interfaccia basata sul web fornita chiamata Flow. H2O supporta anche AutoML che fornisce la classifica tra i diversi algoritmi in base alle loro prestazioni. H2O si comporta bene anche sui Big Data. Questo è sicuramente un vantaggio per Data Scientist applicare i diversi modelli di Machine Learning sul proprio set di dati e scegliere quello migliore per soddisfare le proprie esigenze.