Sélection automatisée des itérations de boosting avec early_stopping
Plutôt que d'essayer de choisir manuellement le nombre optimal d'itérations de boosting, vous pouvez laisser XGBoost sélectionner automatiquement ce nombre pour vous dans xgb.cv(). On utilise pour cela une technique appelée arrêt hâtif.
L'arrêt hâtif consiste à évaluer le modèle XGBoost après chaque itération de boosting sur un jeu de validation réservé et à arrêter la création d'itérations supplémentaires (ce qui termine l'entraînement plus tôt) si la mesure de validation (« rmse » dans notre cas) ne s'améliore pas pendant un certain nombre d'itérations. Ici, vous allez utiliser le paramètre early_stopping_rounds dans xgb.cv() avec un grand nombre potentiel d'itérations (50). Gardez en tête que si la mesure de validation continue de s'améliorer jusqu'à atteindre num_boost_rounds, l'arrêt hâtif ne se produit pas.
Ici, le DMatrix et le dictionnaire de paramètres ont été créés pour vous. Votre tâche est d'effectuer une validation croisée avec arrêt hâtif. À vous de jouer !
Cette activité fait partie du cours
Amorçage de gradient avancé avec XGBoost
Instructions de l’exercice
- Effectuez une validation croisée à 3 volets avec arrêt hâtif et utilisez "rmse" comme mesure. Utilisez
10itérations d'arrêt hâtif et50itérations de boosting. Indiquez unseedde123et assurez-vous que la sortie soit un DataFramepandas. N'oubliez pas de préciser les autres paramètres commedtrain,paramsetmetrics. - Affichez
cv_results.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
# Create your housing DMatrix: housing_dmatrix
housing_dmatrix = xgb.DMatrix(data=X, label=y)
# Create the parameter dictionary for each tree: params
params = {"objective":"reg:squarederror", "max_depth":4}
# Perform cross-validation with early stopping: cv_results
cv_results = ____
# Print cv_results
print(____)