Busca em grade com XGBoost
Agora que você aprendeu a ajustar parâmetros individualmente com XGBoost, vamos levar esse ajuste para o próximo nível usando os recursos GridSearch e RandomizedSearch do scikit-learn, com validação cruzada interna por meio das funções GridSearchCV e RandomizedSearchCV. Você vai usá-los para encontrar exaustivamente o melhor modelo a partir de um conjunto de valores possíveis, explorando vários parâmetros ao mesmo tempo. Mãos à obra, começando com GridSearchCV!
Este exercício faz parte do curso
Extreme Gradient Boosting com XGBoost
Instruções do exercício
- Crie uma grade de parâmetros chamada
gbm_param_gridque contenha: uma lista de valores para"colsample_bytree"(0.3,0.7), uma lista com um único valor para"n_estimators"(50) e uma lista com 2 valores de"max_depth"(2,5). - Instancie um objeto
XGBRegressorchamadogbm. - Crie um objeto
GridSearchCVchamadogrid_mse, passando: a grade de parâmetros emparam_grid, oXGBRegressoremestimator,"neg_mean_squared_error"emscoringe4emcv. Especifique tambémverbose=1para entender melhor a saída. - Ajuste o objeto
GridSearchCVaXey. - Imprima os melhores valores de parâmetros e o menor RMSE, usando os atributos
.best_params_e.best_score_, respectivamente, degrid_mse.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# Create the parameter grid: gbm_param_grid
gbm_param_grid = {
'____': [____, ____],
'____': [____],
'____': [____, ____]
}
# Instantiate the regressor: gbm
gbm = ____
# Perform grid search: grid_mse
grid_mse = ____
# Fit grid_mse to the data
____
# Print the best parameters and lowest RMSE
print("Best parameters found: ", ____)
print("Lowest RMSE found: ", np.sqrt(np.abs(____)))