Recherche par grille avec XGBoost
Maintenant que vous avez appris à ajuster des paramètres individuellement avec XGBoost, passons à la vitesse supérieure en utilisant les fonctionnalités GridSearch et RandomizedSearch de scikit-learn, avec une validation croisée interne via GridSearchCV et RandomizedSearchCV. Vous les utiliserez pour trouver de manière exhaustive le meilleur modèle à partir d’un ensemble de valeurs possibles, et cela sur plusieurs paramètres simultanément. Au travail, en commençant par GridSearchCV !
Cet exercice fait partie du cours
Extreme Gradient Boosting avec XGBoost
Instructions
- Créez une grille de paramètres appelée
gbm_param_gridcontenant une liste de valeurs pour"colsample_bytree"(0.3,0.7), une liste à valeur unique pour"n_estimators"(50), et une liste de 2 valeurs pour"max_depth"(2,5). - Instanciez un objet
XGBRegressorappelégbm. - Créez un objet
GridSearchCVappelégrid_mse, en passant : la grille de paramètres àparam_grid, l’XGBRegressoràestimator,"neg_mean_squared_error"àscoring, et4àcv. Indiquez égalementverbose=1pour mieux comprendre le résultat. - Ajustez l’objet
GridSearchCVsurXety. - Affichez les meilleures valeurs de paramètres et le RMSE le plus bas, en utilisant respectivement les attributs
.best_params_et.best_score_degrid_mse.
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 = ____
# 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(____)))