C'è grande fermento intorno agli algoritmi di machine learning e una forte richiesta di esperti. Sappiamo tutti che esiste un notevole divario di competenze. L'obiettivo di H2O è offrire una piattaforma che renda facile per i non esperti fare esperimenti con il machine learning.
L'architettura di H2O può essere suddivisa in diversi livelli, in cui il livello superiore comprende le varie API e quello inferiore la JVM di H2O.
Il codice centrale di H2O è scritto in Java, il che abilita l'intero framework al multi-threading. Sebbene sia scritto in Java, fornisce interfacce per R, Python e altri, come mostrato nell'architettura, consentendone un uso efficiente.
In sostanza, possiamo dire che H2O è una piattaforma open source, in-memory, distribuita, veloce e scalabile per il machine learning e l'analisi predittiva, che rende la creazione di modelli di machine learning molto più semplice.
Procedura di installazione
R
Se vuoi usare le funzionalità di H2O in R, puoi semplicemente installare il pacchetto H2O con il comando install.packages("h2o").
##
## ----------------------------------------------------------------------
##
## Your next step is to start H2O:
## > h2o.init()
##
## For H2Opackage documentation, ask forhelp:
## >??h2o
##
## After starting H2O, you can use the Web UI at http://localhost:54321
## For more information visit http://docs.h2o.ai
##
## ----------------------------------------------------------------------
##
## Attaching package:'h2o'
## The following objects are masked from'package:stats':
##
## cor, sd,var
## The following objects are masked from'package:base':
##
## %*%,%in%,&&,||, apply,as.factor,as.numeric, colnames,
## colnames<-, ifelse, is.character, is.factor, is.numeric, log,
## log10, log1p, log2, round, signif, trunc
Offerto da
## Connection successful!
##
## R is connected to the H2Ocluster:
## H2O cluster uptime:32 minutes 57 seconds
## H2O cluster timezone: Asia/Kolkata
## H2O data parsing timezone:UTC
## H2O cluster version:3.20.0.2
## H2O cluster version age:3 months and 22 days !!!
## H2O cluster name: H2O_started_from_R_NSingh1_wou076
## H2O cluster total nodes:1
## H2O cluster total memory:1.55GB
## H2O cluster total cores:4
## H2O cluster allowed cores:4
## H2O cluster healthy:TRUE
## H2O Connection ip: localhost
## H2O Connection port:54321
## H2O Connection proxy:NA
## H2O Internal Security:FALSE
## H2OAPIExtensions: Algos, AutoML, Core V3, Core V4
## RVersion:R version 3.5.1(2018-07-02)Offerto da
L'inizializzazione di H2O potrebbe generare un errore sul tuo sistema se non hai una JDK a 64 bit. Se dovesse capitare, installa l'ultima JDK a 64 bit: dopo funzionerà senza problemi.
Python
Se usi Python vale lo stesso approccio: da riga di comando esegui pip install -U h2o e H2O verrà installato per il tuo ambiente Python. Il processo è identico anche per l'inizializzazione di H2O.
Il comando h2o.init() è piuttosto intelligente e fa molte cose: prima cerca un'istanza H2O attiva prima di avviarne una nuova e ne avvia una nuova quando non sono presenti istanze.
Dispone di argomenti che aiutano ad assegnare risorse all'istanza H2O; quelli usati più spesso sono:
nthreads: per impostazione predefinita vale -1, il che significa che l'istanza può usare tutti i core della CPU; possiamo impostare il numero di core da utilizzare passando un valore all'argomento.
max_mem_size: passando un valore a questo argomento puoi limitare la memoria massima allocata all'istanza. È di tipo stringa: puoi passare ad esempio ‘2g’ o ‘2G’ per 2 GB di memoria, analogamente per i MB.
Una volta creata l'istanza, puoi accedere a Flow digitando http://localhost:54321 nel browser. Flow è il nome dell'interfaccia web parte di H2O, non richiede installazioni aggiuntive ed è scritta in CoffeeScript (un linguaggio simile a JavaScript). Puoi usarla per:
Caricare i dati direttamente
Visualizzare i dati caricati dal client
Creare modelli direttamente
Visualizzare i modelli creati da te o dal tuo client
visualizzare le predizioni
Eseguire predizioni direttamente
L'interfaccia è molto utile e offre facilità d'uso ai non esperti; ti consiglio di provarla e fare qualche esperimento.
AutoML
Passando alla parte AutoML di H2O: AutoML aiuta ad addestrare e ottimizzare automaticamente molti modelli entro un limite di tempo specificato dall'utente.
L'attuale versione della funzione AutoML può addestrare e cross-validare una Random Forest, una Extremely-Randomized Forest, una griglia casuale di Gradient Boosting Machines (GBM), una griglia casuale di reti neurali profonde, e quindi addestra uno Stacked Ensemble usando tutti i modelli.
Quando parliamo di AutoML, dovrebbe coprire gli aspetti di preparazione dei dati, generazione dei modelli ed ensemble e offrire anche il minor numero possibile di parametri, così che gli utenti possano svolgere i compiti con molta meno confusione. H2O AutoML svolge questo compito con facilità e con il minimo di parametri passati dall'utente.
Sia nell'API R sia in quella Python, usa gli stessi argomenti relativi ai dati x, y, training_frame, validation frame, tra i quali y e training_frame sono obbligatori e gli altri opzionali. Puoi anche configurare i valori di max_runtime_sec e max_models: qui max_runtime_sec è obbligatorio, mentre max_model è opzionale; se non passi alcun valore, assume NULL per impostazione predefinita.
Il parametro x è il vettore dei predittori da training_frame; se non vuoi usare tutti i predittori del frame passato, puoi specificarli passandoli in x.
Parliamo ora di alcuni parametri opzionali e vari: prova a smanettare con i parametri anche se non li conosci a fondo, ti aiuterà a imparare argomenti più avanzati:
validation_frame: questo parametro è usato per l'early stopping dei singoli modelli in AutoML. È un dataframe che passi per la validazione di un modello o può essere parte dei dati di training se non lo fornisci.
leaderboard_frame: se passato, i modelli verranno valutati in base a questi valori invece di usare le metriche di cross-validation. Anche in questo caso, se non lo passi, i valori sono parte dei dati di training.
nfolds: cross-validation K-fold, per impostazione predefinita 5; può essere usato per ridurre le prestazioni del modello.
fold_columns: specifica l'indice per la cross-validation.
weights_column: se vuoi assegnare pesi a specifiche colonne puoi usare questo parametro; assegnare peso 0 significa escludere la colonna.
ignored_columns: solo in Python, è l'inverso di x.
stopping_metric: specifica una metrica per l'early stopping delle ricerche a griglia e dei modelli; il valore predefinito è logloss per la classificazione e deviance per la regressione.
sort_metric: il parametro per ordinare i modelli in classifica alla fine. Il valore predefinito è AUC per la classificazione binaria, mean_per_class_error per la classificazione multinomiale e deviance per la regressione.
I parametri validation_frame e leaderboard_frame dipendono dal parametro di cross-validation nfolds.
Si possono presentare i seguenti scenari in due casi:
quando usiamo la cross-validation in AutoML: * Viene passato solo il training frame - I dati verranno divisi 80-20 tra training e validation frame. * Vengono passati training e leaderboard frame - Nessuna modifica alla divisione 80-20 tra training e validation frame. * Quando vengono passati training e validation frame - Nessuna divisione. * Quando vengono passati tutti e tre i frame - Nessuna divisione.
Quando non usiamo la cross-validation, il che influisce molto sul leaderboard frame (nfolds = 0): * Viene passato solo il training frame - I dati sono divisi in 80/10/10 tra training, validation e leaderboard. * Vengono passati training e leaderboard frame - I dati sono divisi 80-20 tra training e validation frame. * Quando vengono passati training e validation frame - I dati di validation_frame sono divisi 50-50 tra validation e leaderboard. * Quando vengono passati tutti e tre i frame - Nessuna divisione.
Implementazione in R e Python
R
H2O importa i dati come Frame, che è diverso dal data frame che usiamo in R e Python per varie manipolazioni.
##
|||0%||=================================================================|100%Offerto da
Impostazione dei predittori e della variabile risposta.
y <-"response"
x <- setdiff(names(train), y)Offerto da
Crea un oggetto AutoML passando i parametri obbligatori. Qui passiamo solo il training frame e il parametro nfolds mantiene il suo valore predefinito. Puoi aumentare il tempo di esecuzione del modello in base alle tue esigenze.
train[,y]<- as.factor(train[,y])
aml <- h2o.automl(x = x, y = y,
training_frame = train,
max_runtime_secs =30)Offerto da
##
|||0%||=|1%||=|2%||==|3%||===|4%||===|5%||====|6%||=====|8%||======|9%||======|10%||========|13%||==========|15%||==========|16%||===========|16%||===========|17%||===========|18%||============|18%||==============================================================|95%||=================================================================|100%Offerto da
Scopri i 15 migliori server MCP remoti che stanno trasformando lo sviluppo AI nel 2026. Scopri come migliorano automazione, ragionamento, sicurezza e velocità dei workflow.
Descrivere H2O
C'è grande fermento intorno agli algoritmi di machine learning e una forte richiesta di esperti. Sappiamo tutti che esiste un notevole divario di competenze. L'obiettivo di H2O è offrire una piattaforma che renda facile per i non esperti fare esperimenti con il machine learning.
L'architettura di H2O può essere suddivisa in diversi livelli, in cui il livello superiore comprende le varie API e quello inferiore la JVM di H2O.
Il codice centrale di H2O è scritto in Java, il che abilita l'intero framework al multi-threading. Sebbene sia scritto in Java, fornisce interfacce per R, Python e altri, come mostrato nell'architettura, consentendone un uso efficiente.
In sostanza, possiamo dire che H2O è una piattaforma open source, in-memory, distribuita, veloce e scalabile per il machine learning e l'analisi predittiva, che rende la creazione di modelli di machine learning molto più semplice.
Procedura di installazione
R
Se vuoi usare le funzionalità di H2O in R, puoi semplicemente installare il pacchetto H2O con il comando
install.packages("h2o").L'inizializzazione di H2O potrebbe generare un errore sul tuo sistema se non hai una JDK a 64 bit. Se dovesse capitare, installa l'ultima JDK a 64 bit: dopo funzionerà senza problemi.
Python
Se usi Python vale lo stesso approccio: da riga di comando esegui
pip install -U h2oe H2O verrà installato per il tuo ambiente Python. Il processo è identico anche per l'inizializzazione di H2O.Il comando h2o.init() è piuttosto intelligente e fa molte cose: prima cerca un'istanza H2O attiva prima di avviarne una nuova e ne avvia una nuova quando non sono presenti istanze.
Dispone di argomenti che aiutano ad assegnare risorse all'istanza H2O; quelli usati più spesso sono:
nthreads: per impostazione predefinita vale -1, il che significa che l'istanza può usare tutti i core della CPU; possiamo impostare il numero di core da utilizzare passando un valore all'argomento.
max_mem_size: passando un valore a questo argomento puoi limitare la memoria massima allocata all'istanza. È di tipo stringa: puoi passare ad esempio ‘2g’ o ‘2G’ per 2 GB di memoria, analogamente per i MB.
Una volta creata l'istanza, puoi accedere a Flow digitando http://localhost:54321 nel browser. Flow è il nome dell'interfaccia web parte di H2O, non richiede installazioni aggiuntive ed è scritta in CoffeeScript (un linguaggio simile a JavaScript). Puoi usarla per:
L'interfaccia è molto utile e offre facilità d'uso ai non esperti; ti consiglio di provarla e fare qualche esperimento.
AutoML
Passando alla parte AutoML di H2O: AutoML aiuta ad addestrare e ottimizzare automaticamente molti modelli entro un limite di tempo specificato dall'utente.
L'attuale versione della funzione AutoML può addestrare e cross-validare una Random Forest, una Extremely-Randomized Forest, una griglia casuale di Gradient Boosting Machines (GBM), una griglia casuale di reti neurali profonde, e quindi addestra uno Stacked Ensemble usando tutti i modelli.
Quando parliamo di AutoML, dovrebbe coprire gli aspetti di preparazione dei dati, generazione dei modelli ed ensemble e offrire anche il minor numero possibile di parametri, così che gli utenti possano svolgere i compiti con molta meno confusione. H2O AutoML svolge questo compito con facilità e con il minimo di parametri passati dall'utente.
Sia nell'API R sia in quella Python, usa gli stessi argomenti relativi ai dati
x,y,training_frame,validation frame, tra i qualiyetraining_framesono obbligatori e gli altri opzionali. Puoi anche configurare i valori dimax_runtime_secemax_models: quimax_runtime_secè obbligatorio, mentremax_modelè opzionale; se non passi alcun valore, assume NULL per impostazione predefinita.Il parametro
xè il vettore dei predittori datraining_frame; se non vuoi usare tutti i predittori del frame passato, puoi specificarli passandoli inx.Parliamo ora di alcuni parametri opzionali e vari: prova a smanettare con i parametri anche se non li conosci a fondo, ti aiuterà a imparare argomenti più avanzati:
validation_frame: questo parametro è usato per l'early stopping dei singoli modelli in AutoML. È un dataframe che passi per la validazione di un modello o può essere parte dei dati di training se non lo fornisci.
leaderboard_frame: se passato, i modelli verranno valutati in base a questi valori invece di usare le metriche di cross-validation. Anche in questo caso, se non lo passi, i valori sono parte dei dati di training.
nfolds: cross-validation K-fold, per impostazione predefinita 5; può essere usato per ridurre le prestazioni del modello.
fold_columns: specifica l'indice per la cross-validation.
weights_column: se vuoi assegnare pesi a specifiche colonne puoi usare questo parametro; assegnare peso 0 significa escludere la colonna.
ignored_columns: solo in Python, è l'inverso di
x.stopping_metric: specifica una metrica per l'early stopping delle ricerche a griglia e dei modelli; il valore predefinito è logloss per la classificazione e deviance per la regressione.
sort_metric: il parametro per ordinare i modelli in classifica alla fine. Il valore predefinito è AUC per la classificazione binaria, mean_per_class_error per la classificazione multinomiale e deviance per la regressione.
I parametri validation_frame e leaderboard_frame dipendono dal parametro di cross-validation
nfolds.Si possono presentare i seguenti scenari in due casi:
quando usiamo la cross-validation in AutoML: * Viene passato solo il training frame - I dati verranno divisi 80-20 tra training e validation frame. * Vengono passati training e leaderboard frame - Nessuna modifica alla divisione 80-20 tra training e validation frame. * Quando vengono passati training e validation frame - Nessuna divisione. * Quando vengono passati tutti e tre i frame - Nessuna divisione.
Quando non usiamo la cross-validation, il che influisce molto sul leaderboard frame (nfolds = 0): * Viene passato solo il training frame - I dati sono divisi in 80/10/10 tra training, validation e leaderboard. * Vengono passati training e leaderboard frame - I dati sono divisi 80-20 tra training e validation frame. * Quando vengono passati training e validation frame - I dati di validation_frame sono divisi 50-50 tra validation e leaderboard. * Quando vengono passati tutti e tre i frame - Nessuna divisione.
Implementazione in R e Python
R
H2O importa i dati come Frame, che è diverso dal data frame che usiamo in R e Python per varie manipolazioni.
Impostazione dei predittori e della variabile risposta.
Crea un oggetto AutoML passando i parametri obbligatori. Qui passiamo solo il training frame e il parametro nfolds mantiene il suo valore predefinito. Puoi aumentare il tempo di esecuzione del modello in base alle tue esigenze.
Visualizzare la classifica dei diversi modelli.
Python
Se vuoi approfondire in Python, segui il corso di DataCamp Parallel Computing with Dask.