H2O - Installazione

H2O può essere configurato e utilizzato con cinque diverse opzioni come elencato di seguito:

  • Installa in Python

  • Installa in R

  • GUI di flusso basata sul Web

  • Hadoop

  • Anaconda Cloud

Nelle nostre sezioni successive vedrai le istruzioni per l'installazione di H2O in base alle opzioni disponibili. È probabile che tu utilizzi una delle opzioni.

Installa in Python

Per eseguire H2O con Python, l'installazione richiede diverse dipendenze. Quindi iniziamo a installare il set minimo di dipendenze per eseguire H2O.

Installazione delle dipendenze

Per installare una dipendenza, eseguire il seguente comando pip:

$ pip install requests

Apri la finestra della console e digita il comando precedente per installare il pacchetto delle richieste. Lo screenshot seguente mostra l'esecuzione del comando precedente sulla nostra macchina Mac -

Dopo aver installato le richieste, è necessario installare altri tre pacchetti come mostrato di seguito:

$ pip install tabulate
$ pip install "colorama >= 0.3.8"
$ pip install future

L'elenco più aggiornato delle dipendenze è disponibile sulla pagina H2O GitHub. Al momento della stesura di questo documento, le seguenti dipendenze sono elencate nella pagina.

python 2. H2O — Installation
pip >= 9.0.1
setuptools
colorama >= 0.3.7
future >= 0.15.2

Rimozione di versioni precedenti

Dopo aver installato le dipendenze di cui sopra, è necessario rimuovere qualsiasi installazione H2O esistente. Per fare ciò, esegui il seguente comando:

$ pip uninstall h2o

Installazione dell'ultima versione

Ora, installiamo l'ultima versione di H2O usando il seguente comando:

$ pip install -f http://h2o-release.s3.amazonaws.com/h2o/latest_stable_Py.html h2o

Al termine dell'installazione, sullo schermo dovrebbe essere visualizzato il seguente messaggio:

Installing collected packages: h2o
Successfully installed h2o-3.26.0.1

Verifica dell'installazione

Per testare l'installazione, eseguiremo una delle applicazioni di esempio fornite nell'installazione H2O. Per prima cosa avvia il prompt di Python digitando il seguente comando:

$ Python3

Una volta avviato l'interprete Python, digita la seguente istruzione Python sul prompt dei comandi Python:

>>>import h2o

Il comando precedente importa il pacchetto H2O nel tuo programma. Successivamente, inizializza il sistema H2O utilizzando il seguente comando:

>>>h2o.init()

Lo schermo mostrerebbe le informazioni sul cluster e dovrebbe apparire quanto segue in questa fase:

Ora sei pronto per eseguire il codice di esempio. Digita il seguente comando nel prompt di Python ed eseguilo.

>>>h2o.demo("glm")

La demo consiste in un notebook Python con una serie di comandi. Dopo aver eseguito ogni comando, il suo output viene mostrato immediatamente sullo schermo e ti verrà chiesto di premere il tasto per continuare con il passaggio successivo. Lo screenshot parziale sull'esecuzione dell'ultima istruzione nel notebook è mostrato qui -

A questo punto l'installazione di Python è completa e sei pronto per la tua sperimentazione.

Installa in R

L'installazione di H2O per lo sviluppo R è molto simile all'installazione per Python, tranne per il fatto che useresti il ​​prompt R per l'installazione.

Avvio di R Console

Avvia la console R facendo clic sull'icona dell'applicazione R sulla macchina. La schermata della console apparirà come mostrato nella seguente schermata:

La tua installazione H2O verrebbe eseguita al prompt R sopra. Se preferisci usare RStudio, digita i comandi nella sottofinestra della console R.

Rimozione di versioni precedenti

Per cominciare, rimuovi le versioni precedenti utilizzando il seguente comando nel prompt R:

> if ("package:h2o" %in% search()) { detach("package:h2o", unload=TRUE) }
> if ("h2o" %in% rownames(installed.packages())) { remove.packages("h2o") }

Download delle dipendenze

Scarica le dipendenze per H2O utilizzando il codice seguente:

> pkgs <- c("RCurl","jsonlite")
for (pkg in pkgs) {
   if (! (pkg %in% rownames(installed.packages()))) { install.packages(pkg) }
}

Installazione di H2O

Installa H2O digitando il seguente comando al prompt R:

> install.packages("h2o", type = "source", repos = (c("http://h2o-release.s3.amazonaws.com/h2o/latest_stable_R")))

Lo screenshot seguente mostra l'output previsto:

C'è un altro modo per installare H2O in R.

Installa in R da CRAN

Per installare R da CRAN, utilizzare il seguente comando sul prompt R:

> install.packages("h2o")

Ti verrà chiesto di selezionare lo specchio -

--- Please select a CRAN mirror for use in this session ---

Sullo schermo viene visualizzata una finestra di dialogo che mostra l'elenco dei siti mirror. Seleziona la posizione più vicina o lo specchio di tua scelta.

Installazione di prova

Al prompt R, digita ed esegui il codice seguente:

> library(h2o)
> localH2O = h2o.init()
> demo(h2o.kmeans)

L'output generato sarà come mostrato nello screenshot seguente:

La tua installazione H2O in R è ora completa.

Installazione di Web GUI Flow

Per installare GUI Flow scaricare il file di installazione dal sito H20. Decomprimere il file scaricato nella cartella preferita. Notare la presenza del file h2o.jar nell'installazione. Esegui questo file in una finestra di comando utilizzando il seguente comando:

$ java -jar h2o.jar

Dopo un po ', nella finestra della console verrà visualizzato quanto segue.

07-24 16:06:37.304 192.168.1.18:54321 3294 main INFO: H2O started in 7725ms
07-24 16:06:37.304 192.168.1.18:54321 3294 main INFO:
07-24 16:06:37.305 192.168.1.18:54321 3294 main INFO: Open H2O Flow in your web browser: http://192.168.1.18:54321
07-24 16:06:37.305 192.168.1.18:54321 3294 main INFO:

Per avviare il flusso, apri l'URL fornito http://localhost:54321nel tuo browser. Apparirà la seguente schermata:

In questa fase, l'installazione di Flow è completa.

Installa su Hadoop / Anaconda Cloud

A meno che tu non sia uno sviluppatore esperto, non penseresti di utilizzare H2O su Big Data. È sufficiente dire qui che i modelli H2O funzionano in modo efficiente su enormi database di diversi terabyte. Se i tuoi dati si trovano sulla tua installazione Hadoop o nel Cloud, segui i passaggi indicati sul sito H2O per installarli per il tuo rispettivo database.

Ora che hai installato e testato con successo H2O sulla tua macchina, sei pronto per lo sviluppo reale. Per prima cosa, vedremo lo sviluppo da un prompt dei comandi. Nelle nostre lezioni successive, impareremo come eseguire il test del modello in H2O Flow.

Sviluppo nel prompt dei comandi

Consideriamo ora l'utilizzo di H2O per classificare le piante del noto set di dati iris che è disponibile gratuitamente per lo sviluppo di applicazioni di Machine Learning.

Avvia l'interprete Python digitando il seguente comando nella finestra della shell:

$ Python3

Questo avvia l'interprete Python. Importa la piattaforma h2o utilizzando il seguente comando:

>>> import h2o

Useremo l'algoritmo Random Forest per la classificazione. Questo è fornito nel pacchetto H2ORandomForestEstimator. Importiamo questo pacchetto utilizzando l'istruzione import come segue:

>>> from h2o.estimators import H2ORandomForestEstimator

Inizializziamo l'ambiente H2o chiamando il suo metodo init.

>>> h2o.init()

Se l'inizializzazione è riuscita, dovresti vedere il seguente messaggio sulla console insieme alle informazioni sul cluster.

Checking whether there is an H2O instance running at http://localhost:54321 . connected.

Ora, importeremo i dati dell'iride utilizzando il metodo import_file in H2O.

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

Lo stato di avanzamento verrà visualizzato come mostrato nella seguente schermata:

Dopo che il file è stato caricato in memoria, è possibile verificarlo visualizzando le prime 10 righe della tabella caricata. Usi il filehead metodo per farlo -

>>> data.head()

Vedrai il seguente output in formato tabulare.

La tabella mostra anche i nomi delle colonne. Useremo le prime quattro colonne come caratteristiche per il nostro algoritmo ML e l'ultima classe di colonna come output previsto. Lo specifichiamo nella chiamata al nostro algoritmo ML creando prima le seguenti due variabili.

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

Successivamente, suddividiamo i dati in training e test chiamando il metodo split_frame.

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

I dati sono suddivisi nel rapporto 80:20. Usiamo l'80% dei dati per la formazione e il 20% per i test.

Ora, carichiamo il modello Random Forest integrato nel sistema.

>>> model = H2ORandomForestEstimator(ntrees = 50, max_depth = 20, nfolds = 10)

Nella chiamata precedente, abbiamo impostato il numero di alberi a 50, la profondità massima dell'albero a 20 e il numero di pieghe per la convalida incrociata a 10. Ora dobbiamo addestrare il modello. Lo facciamo chiamando il metodo train come segue:

>>> model.train(x = features, y = output, training_frame = train)

Il metodo train riceve le caratteristiche e l'output che abbiamo creato in precedenza come primi due parametri. Il set di dati di addestramento è impostato per il training, ovvero l'80% del nostro set di dati completo. Durante l'allenamento, vedrai i progressi come mostrato qui -

Ora, poiché il processo di creazione del modello è terminato, è tempo di testare il modello. Lo facciamo chiamando il metodo model_performance sull'oggetto modello addestrato.

>>> performance = model.model_performance(test_data=test)

Nella chiamata al metodo sopra, abbiamo inviato i dati di test come nostro parametro.

È giunto il momento di vedere l'output, ovvero le prestazioni del nostro modello. Puoi farlo semplicemente stampando la performance.

>>> print (performance)

Questo ti darà il seguente output:

L'output mostra Mean Square Error (MSE), Root Mean Square Error (RMSE), LogLoss e persino Confusion Matrix.

In esecuzione in Jupyter

Abbiamo visto l'esecuzione dal comando e compreso lo scopo di ogni riga di codice. È possibile eseguire l'intero codice in un ambiente Jupyter, riga per riga o l'intero programma alla volta. L'elenco completo è fornito qui -

import h2o
from h2o.estimators import H2ORandomForestEstimator
h2o.init()
data = h2o.import_file('iris.csv')
features = ['sepal_length', 'sepal_width', 'petal_length', 'petal_width']
output = 'class'
train, test = data.split_frame(ratios=[0.8])
model = H2ORandomForestEstimator(ntrees = 50, max_depth = 20, nfolds = 10)
model.train(x = features, y = output, training_frame = train)
performance = model.model_performance(test_data=test)
print (performance)

Eseguire il codice e osservare l'output. Ora puoi apprezzare quanto sia facile applicare e testare un algoritmo di foresta casuale sul tuo set di dati. La potenza dell'H20 va ben oltre questa capacità. E se volessi provare un altro modello sullo stesso set di dati per vedere se puoi ottenere prestazioni migliori. Questo è spiegato nella nostra sezione successiva.

Applicazione di un algoritmo diverso

Ora impareremo come applicare un algoritmo di incremento gradiente al nostro set di dati precedente per vedere come si comporta. Nell'elenco completo sopra, dovrai apportare solo due piccole modifiche come evidenziato nel codice seguente:

import h2o 
from h2o.estimators import H2OGradientBoostingEstimator
h2o.init()
data = h2o.import_file('iris.csv')
features = ['sepal_length', 'sepal_width', 'petal_length', 'petal_width']
output = 'class'
train, test = data.split_frame(ratios = [0.8]) 
model = H2OGradientBoostingEstimator
(ntrees = 50, max_depth = 20, nfolds = 10)
model.train(x = features, y = output, training_frame = train)
performance = model.model_performance(test_data = test)
print (performance)

Esegui il codice e otterrai il seguente output:

Basta confrontare i risultati come MSE, RMSE, Confusion Matrix, ecc. Con l'output precedente e decidere quale utilizzare per la distribuzione in produzione. È un dato di fatto, puoi applicare diversi algoritmi diversi per decidere quello migliore che soddisfa il tuo scopo.