Recherche aléatoire avec XGBoost
Souvent, GridSearchCV peut être très chronophage. En pratique, vous pouvez donc préférer RandomizedSearchCV, comme dans cet exercice. La bonne nouvelle, c’est que vous n’avez que quelques ajustements à faire à votre code GridSearchCV pour utiliser RandomizedSearchCV. La différence essentielle est que vous devez fournir un paramètre param_distributions au lieu de param_grid.
Cet exercice fait partie du cours
Extreme Gradient Boosting avec XGBoost
Instructions
- Créez une grille de paramètres appelée
gbm_param_gridqui contient une liste avec une seule valeur pour'n_estimators'(25), et une liste de valeurs'max_depth'comprises entre2et11pour'max_depth'— utilisezrange(2, 12)pour cela. - Créez un objet
RandomizedSearchCVappelérandomized_mse, en passant : la grille de paramètres àparam_distributions, leXGBRegressoràestimator,"neg_mean_squared_error"àscoring,5àn_iter, et4àcv. Indiquez égalementverbose=1afin de mieux comprendre le résultat. - Ajustez l’objet
RandomizedSearchCVsurXety.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
# 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_)))