Machine Learning con H2O
Descubre cómo utilizar H2O para el machine learning y la automatización de modelos.
InSkillCoach
Machine Learning con H2O
Descubre cómo utilizar H2O para el machine learning y la automatización de modelos.
Configuración Básica
1. Instalación
pip install h2o pandas numpy scikit-learn
2. Inicialización
import h2o
from h2o.automl import H2OAutoML
# Inicialización de H2O
h2o.init()
# Configuración de la memoria
h2o.cluster().show_status()
Preparación de los Datos
1. Carga de los Datos
# Carga desde un archivo CSV
data = h2o.import_file("data.csv")
# Carga desde un DataFrame de pandas
import pandas as pd
df = pd.read_csv("data.csv")
data = h2o.H2OFrame(df)
# División train/test
train, test = data.split_frame(ratios=[0.8], seed=42)
2. Preparación de las Features
# Identificación de las columnas
y = "target" # Variable objetivo
x = [col for col in data.columns if col != y]
# Conversión de los tipos
data["target"] = data["target"].asfactor() # Para la clasificación
data["target"] = data["target"].asnumeric() # Para la regresión
# Gestión de los valores faltantes
data = data.fillna(method="forward")
AutoML con H2O
1. Configuración de AutoML
# Configuración de AutoML
aml = H2OAutoML(
max_models=10,
seed=42,
max_runtime_secs=300,
sort_metric="AUTO",
balance_classes=True,
nfolds=5
)
# Entrenamiento
aml.train(x=x, y=y, training_frame=train)
2. Evaluación de los Modelos
# Leaderboard
lb = aml.leaderboard
print(lb)
# Mejor modelo
best_model = aml.leader
# Predicciones
predictions = best_model.predict(test)
# Métricas de rendimiento
performance = best_model.model_performance(test)
print(performance)
Modelos Específicos
1. Random Forest
from h2o.estimators import H2ORandomForestEstimator
# Configuración del modelo
rf = H2ORandomForestEstimator(
ntrees=100,
max_depth=10,
min_rows=5,
seed=42
)
# Entrenamiento
rf.train(x=x, y=y, training_frame=train)
# Evaluación
rf_performance = rf.model_performance(test)
2. Gradient Boosting
from h2o.estimators import H2OGradientBoostingEstimator
# Configuración del modelo
gbm = H2OGradientBoostingEstimator(
ntrees=100,
max_depth=6,
learn_rate=0.1,
seed=42
)
# Entrenamiento
gbm.train(x=x, y=y, training_frame=train)
# Evaluación
gbm_performance = gbm.model_performance(test)
Funcionalidades Avanzadas
1. Feature Engineering
# Creación de nuevas features
data["new_feature"] = data["feature1"] * data["feature2"]
# Codificación categórica
data["categorical"] = data["categorical"].asfactor()
# Normalización
from h2o.preprocessing import H2OScaler
scaler = H2OScaler()
data_scaled = scaler.fit_transform(data)
2. Selección de Features
# Importancia de las features
feature_importance = best_model.varimp(use_pandas=True)
print(feature_importance)
# Selección de las features importantes
important_features = feature_importance[feature_importance["relative_importance"] > 0.01]["variable"]
Guardado y Carga
1. Guardado de los Modelos
# Guardado del modelo
h2o.save_model(best_model, path="models/")
# Guardado de las predicciones
h2o.export_file(predictions, "predictions.csv")
2. Carga de los Modelos
# Carga del modelo
loaded_model = h2o.load_model("models/best_model")
# Uso del modelo cargado
new_predictions = loaded_model.predict(test)
Buenas Prácticas
-
Preparación de los Datos
- Limpieza eficaz
- Feature engineering
- Gestión de los valores faltantes
- Normalización
-
Configuración de los Modelos
- Hiperparámetros optimizados
- Validación cruzada
- Equilibrado de clases
- Monitorización
-
Evaluación
- Métricas apropiadas
- Validación sobre test
- Interpretabilidad
- Documentación
Conclusión
Puntos clave que recordar:
- AutoML eficaz
- Modelos de alto rendimiento
- Feature engineering
- Evaluación completa
Recomendaciones:
- Optimizar los hiperparámetros
- Validar los resultados
- Documentar los experimentos
- Formarse en H2O
- Seguir las buenas prácticas
Acerca de InSkillCoach
Experto en formación y tecnologías
Coach especializado en tecnologías avanzadas e IA, impulsado por GNeurone Inc.
Certificaciones:
- AWS Certified Solutions Architect – Professional
- Certificaciones de Google Cloud
- Microsoft Certified: DevOps Engineer Expert
- Certified Kubernetes Administrator (CKA)
- CompTIA Security+
Comentarios
Los comentarios funcionan con GitHub Discussions
Inicia sesión con GitHub para participar en la discusión