H2O: AutoML

Para usar AutoML, inicie un nuevo cuaderno de Jupyter y siga los pasos que se muestran a continuación.

Importando AutoML

Primero importe el paquete H2O y AutoML al proyecto utilizando las siguientes dos declaraciones:

import h2o
from h2o.automl import H2OAutoML

Inicializar H2O

Inicialice h2o usando la siguiente declaración:

h2o.init()

Debería ver la información del clúster en la pantalla como se muestra en la captura de pantalla a continuación:

Cargando datos

Usaremos el mismo conjunto de datos iris.csv que usó anteriormente en este tutorial. Cargue los datos usando la siguiente declaración:

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

Preparando conjunto de datos

Necesitamos decidir sobre las características y las columnas de predicción. Usamos las mismas características y la columna de predicación que en nuestro caso anterior. Configure las características y la columna de salida utilizando las siguientes dos declaraciones:

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

Divida los datos en una proporción de 80:20 para entrenamiento y pruebas -

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

Aplicar AutoML

Ahora, estamos listos para aplicar AutoML en nuestro conjunto de datos. AutoML se ejecutará durante un período de tiempo fijo establecido por nosotros y nos dará el modelo optimizado. Configuramos AutoML usando la siguiente declaración:

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

El primer parámetro especifica el número de modelos que queremos evaluar y comparar.

El segundo parámetro especifica el tiempo durante el cual se ejecuta el algoritmo.

Ahora llamamos al método de tren en el objeto AutoML como se muestra aquí:

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

Especificamos la x como la matriz de características que creamos anteriormente, la y como la variable de salida para indicar el valor predicho y el marco de datos como train conjunto de datos.

Ejecute el código, tendrá que esperar 5 minutos (establecemos max_runtime_secs en 300) hasta que obtenga el siguiente resultado:

Imprimir la tabla de clasificación

Cuando se completa el procesamiento de AutoML, crea una tabla de clasificación que clasifica los 30 algoritmos que ha evaluado. Para ver los primeros 10 registros de la tabla de clasificación, use el siguiente código:

lb = aml.leaderboard
lb.head()

Tras la ejecución, el código anterior generará la siguiente salida:

Claramente, el algoritmo DeepLearning tiene la máxima puntuación.

Predicción sobre datos de prueba

Ahora que tiene los modelos clasificados, puede ver el rendimiento del modelo mejor calificado en sus datos de prueba. Para hacerlo, ejecute la siguiente declaración de código:

preds = aml.predict(test)

El procesamiento continúa por un tiempo y verá la siguiente salida cuando se complete.

Resultado de impresión

Imprima el resultado previsto usando la siguiente declaración:

print (preds)

Tras la ejecución de la declaración anterior, verá el siguiente resultado:

Imprimir la clasificación para todos

Si desea ver los rangos de todos los algoritmos probados, ejecute la siguiente declaración de código:

lb.head(rows = lb.nrows)

Tras la ejecución de la declaración anterior, se generará la siguiente salida (se muestra parcialmente):

Conclusión

H2O proporciona una plataforma de código abierto fácil de usar para aplicar diferentes algoritmos de ML en un conjunto de datos determinado. Proporciona varios algoritmos estadísticos y de aprendizaje automático, incluido el aprendizaje profundo. Durante la prueba, puede ajustar los parámetros a estos algoritmos. Puede hacerlo mediante la línea de comandos o la interfaz basada en web proporcionada llamada Flow. H2O también es compatible con AutoML que proporciona la clasificación entre varios algoritmos en función de su rendimiento. H2O también funciona bien en Big Data. Definitivamente, esto es una bendición para que Data Scientist aplique los diferentes modelos de aprendizaje automático en su conjunto de datos y elija el mejor para satisfacer sus necesidades.