Skip to content

10. Treinamento do Modelo de Árvore de Decisão

O treinamento do modelo é uma das etapas mais importantes do projeto. Aqui, além de ajustar o modelo aos dados, buscamos encontrar a melhor combinação de hiperparâmetros utilizando o GridSearchCV. Esse processo de busca garante que o modelo seja otimizado para o conjunto de dados, aumentando sua capacidade de generalização e reduzindo o risco de overfitting.

O ajuste cuidadoso dos hiperparâmetros, como profundidade máxima da árvore, número mínimo de amostras para divisão e folha, e seleção de features, impacta diretamente a performance e a interpretabilidade do modelo. Um modelo bem treinado é capaz de capturar padrões relevantes sem se tornar excessivamente complexo.

from sklearn.model_selection import GridSearchCV
from sklearn.tree import DecisionTreeRegressor

param_grid = {
    'max_depth': [3, 5, 10, 20, None],
    'min_samples_split': [2, 5, 10, 20],
    'min_samples_leaf': [1, 2, 4, 8],
    'max_features': [None, 'sqrt', 'log2']  # Removido 'auto' para evitar erro
}

grid_search = GridSearchCV(
    DecisionTreeRegressor(random_state=42),
    param_grid,
    cv=5,
    scoring='r2',
    n_jobs=-1
)
grid_search.fit(X_train, y_train)
best_tree = grid_search.best_estimator_
print('Melhores hiperparâmetros:', grid_search.best_params_)

O modelo foi treinado com sucesso e está pronto para realizar previsões.