Machine Learning com H2O
Descubra como usar o H2O para machine learning e automação de modelos.
I
InSkillCoach
· min
Machine Learning com H2O
Descubra como usar o H2O para machine learning e automação de modelos.
Configuração Básica
1. Instalação
pip install h2o pandas numpy scikit-learn
2. Inicialização
import h2o
from h2o.automl import H2OAutoML
# Inicialização do H2O
h2o.init()
# Configuração da memória
h2o.cluster().show_status()
Preparação dos Dados
1. Carregamento dos Dados
# Carregamento a partir de um arquivo CSV
data = h2o.import_file("data.csv")
# Carregamento a partir de um DataFrame pandas
import pandas as pd
df = pd.read_csv("data.csv")
data = h2o.H2OFrame(df)
# Divisão treino/teste
train, test = data.split_frame(ratios=[0.8], seed=42)
2. Preparação das Features
# Identificação das colunas
y = "target" # Variável alvo
x = [col for col in data.columns if col != y]
# Conversão dos tipos
data["target"] = data["target"].asfactor() # Para classificação
data["target"] = data["target"].asnumeric() # Para regressão
# Tratamento de valores ausentes
data = data.fillna(method="forward")
AutoML com H2O
1. Configuração do AutoML
# Configuração do AutoML
aml = H2OAutoML(
max_models=10,
seed=42,
max_runtime_secs=300,
sort_metric="AUTO",
balance_classes=True,
nfolds=5
)
# Treinamento
aml.train(x=x, y=y, training_frame=train)
2. Avaliação dos Modelos
# Leaderboard
lb = aml.leaderboard
print(lb)
# Melhor modelo
best_model = aml.leader
# Previsões
predictions = best_model.predict(test)
# Métricas de desempenho
performance = best_model.model_performance(test)
print(performance)
Modelos Específicos
1. Random Forest
from h2o.estimators import H2ORandomForestEstimator
# Configuração do modelo
rf = H2ORandomForestEstimator(
ntrees=100,
max_depth=10,
min_rows=5,
seed=42
)
# Treinamento
rf.train(x=x, y=y, training_frame=train)
# Avaliação
rf_performance = rf.model_performance(test)
2. Gradient Boosting
from h2o.estimators import H2OGradientBoostingEstimator
# Configuração do modelo
gbm = H2OGradientBoostingEstimator(
ntrees=100,
max_depth=6,
learn_rate=0.1,
seed=42
)
# Treinamento
gbm.train(x=x, y=y, training_frame=train)
# Avaliação
gbm_performance = gbm.model_performance(test)
Funcionalidades Avançadas
1. Feature Engineering
# Criação de novas features
data["new_feature"] = data["feature1"] * data["feature2"]
# Codificação categórica
data["categorical"] = data["categorical"].asfactor()
# Normalização
from h2o.preprocessing import H2OScaler
scaler = H2OScaler()
data_scaled = scaler.fit_transform(data)
2. Seleção de Features
# Importância das features
feature_importance = best_model.varimp(use_pandas=True)
print(feature_importance)
# Seleção das features importantes
important_features = feature_importance[feature_importance["relative_importance"] > 0.01]["variable"]
Salvamento e Carregamento
1. Salvamento dos Modelos
# Salvamento do modelo
h2o.save_model(best_model, path="models/")
# Salvamento das previsões
h2o.export_file(predictions, "predictions.csv")
2. Carregamento dos Modelos
# Carregamento do modelo
loaded_model = h2o.load_model("models/best_model")
# Uso do modelo carregado
new_predictions = loaded_model.predict(test)
Boas Práticas
-
Preparação dos Dados
- Limpeza eficiente
- Feature engineering
- Tratamento de valores ausentes
- Normalização
-
Configuração dos Modelos
- Hiperparâmetros otimizados
- Validação cruzada
- Balanceamento de classes
- Monitoramento
-
Avaliação
- Métricas apropriadas
- Validação no conjunto de teste
- Interpretabilidade
- Documentação
Conclusão
Pontos-chave a lembrar:
- AutoML eficiente
- Modelos de alto desempenho
- Feature engineering
- Avaliação completa
Recomendações:
- Otimizar os hiperparâmetros
- Validar os resultados
- Documentar os experimentos
- Aprofundar-se em H2O
- Seguir as boas práticas
Sobre InSkillCoach
Especialista em treinamento e tecnologias
Coach especializado em tecnologias avançadas e IA, apoiado pela GNeurone Inc.
Certificações:
- AWS Certified Solutions Architect – Professional
- Certificações Google Cloud
- Microsoft Certified: DevOps Engineer Expert
- Certified Kubernetes Administrator (CKA)
- CompTIA Security+
872
334
Comentários
Os comentários são alimentados pelo GitHub Discussions
Conecte-se com o GitHub para participar da discussão