1
resposta

Minha solução Otimizando os hiperparametros e Preparando com GridSearch

from sklearn.model_selection import GridSearchCV, KFold
from sklearn.ensemble import RandomForestRegressor
import pandas as pd

# Exibe valores float com 3 casas decimais
pd.options.display.float_format = '{:.3f}'.format

# Criação do validador cross-validation
cv = KFold(n_splits=5, shuffle=True, random_state=42)

# Define os parâmetros para o GridSearch (exemplo)
param_grid = {
    'n_estimators': [100, 200],
    'max_depth': [5, 10, None],
    'min_samples_split': [2, 5],
    'min_samples_leaf': [1, 2]
}

# Cria e ajusta o GridSearchCV
model_grid = GridSearchCV(
    RandomForestRegressor(random_state=42),
    param_grid=param_grid,
    scoring='r2',
    cv=cv
)

# Ajuste com os dados de treino
model_grid.fit(X_train, y_train)

# Previsão com o melhor modelo
y_pred_model_grid = model_grid.predict(X_test)

# Cálculo das métricas do modelo otimizado
metricas_model_grid = calcular_metricas_regressao(y_test, y_pred_model_grid)

# Exibe os melhores hiperparâmetros encontrados
print("Melhores parâmetros encontrados pelo GridSearchCV:")
print(model_grid.best_params_)

# --- Atualização do DataFrame de resultados ---

# Se quiser adicionar uma métrica de outro modelo com 'count' previamente definido:
# Exemplo: count = 10 (ou outro valor que você usou antes)
# results_df[f'Variáveis: {count}'] = list(metricas.values())

# Renomeia as colunas já existentes, se necessário
results_df.columns = [f'Variáveis: {col}' if not str(col).startswith('Variáveis:') else col for col in results_df.columns]

# Adiciona os resultados do modelo otimizado
results_df['Modelo Otimizado'] = list(metricas_model_grid.values())

# Exibe o DataFrame de resultados finais
print("\nDesempenho comparado dos modelos:")
display(results_df)

# Exibe também as métricas do modelo otimizado individualmente
print("\nMétricas detalhadas do modelo otimizado:")
for metrica, valor in metricas_model_grid.items():
    print(f"{metrica}: {valor:.3f}")
1 resposta

E aí, Paulo! Tudo bem?

Parabéns! Mantenha o ritmo nos exercícios e continue compartilhando na nossa comunidade.

Percebi que você praticou o uso do GridSearchCV para ajuste fino de hiperparâmetros aplicou muito bem o KFold cross-validation para garantir robustez na validação e ainda entendeu a relevância de comparar os modelos usando DataFrames de métricas para tomada de decisão com base em evidências.

Permaneça postando as suas soluções, com certeza isso ajudará outros estudantes e tem grande relevância para o fórum.

Ícone de sugestão Para saber mais:

Sugestão de conteúdo para você mergulhar ainda mais sobre o tema:

Alguns materiais estão em inglês, mas é possível compreendê-los usando o recurso de tradução de páginas do próprio navegador.

Fico à disposição! E se precisar, conte sempre com o apoio do fórum.

Abraço e bons estudos!

AluraConte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!