Busca aleatória com XGBoost
Muitas vezes, o GridSearchCV pode ser bem demorado; por isso, na prática, você pode preferir usar RandomizedSearchCV, como fará neste exercício. A boa notícia é que você só precisa fazer poucas modificações no seu código de GridSearchCV para usar RandomizedSearchCV. A diferença principal é que você deve especificar um parâmetro param_distributions em vez de param_grid.
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 com um único valor para'n_estimators'(25) e uma lista de valores de'max_depth'entre2e11para'max_depth'— userange(2, 12)para isso. - Crie um objeto
RandomizedSearchCVchamadorandomized_mse, passando: a grade de parâmetros emparam_distributions, oXGBRegressoremestimator,"neg_mean_squared_error"emscoring,5emn_itere4emcv. Também especifiqueverbose=1para entender melhor as saídas. - Faça o ajuste (fit) do objeto
RandomizedSearchCVemXey.
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 = xgb.XGBRegressor(n_estimators=10)
# Perform random search: grid_mse
randomized_mse = ____
# Fit randomized_mse to the data
____
# Print the best parameters and lowest RMSE
print("Best parameters found: ", randomized_mse.best_params_)
print("Lowest RMSE found: ", np.sqrt(np.abs(randomized_mse.best_score_)))