CommencezCommencez gratuitement

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

Voir le cours

Instructions de l’exercice

  • Effectuez une validation croisée à 3 volets avec arrêt hâtif et utilisez "rmse" comme mesure. Utilisez 10 itérations d'arrêt hâtif et 50 itérations de boosting. Indiquez un seed de 123 et assurez-vous que la sortie soit un DataFrame pandas. N'oubliez pas de préciser les autres paramètres comme dtrain, params et metrics.
  • 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(____)
Modifier et exécuter le code