Ajuster eta
Il est temps de vous entraîner à ajuster d’autres hyperparamètres d’XGBoost et d’observer leur impact sur les performances du modèle ! Commencez par régler "eta", aussi appelé taux d’apprentissage (learning rate).
Le taux d’apprentissage dans XGBoost est un paramètre compris entre 0 et 1. Des valeurs plus élevées de "eta" pénalisent davantage les poids des variables, ce qui induit une régularisation beaucoup plus forte.
Cet exercice fait partie du cours
<cours>Extreme Gradient Boosting avec XGBoost</cours>Instructions de l’exercice
- Créez une liste appelée
eta_valspour stocker les valeurs de"eta"suivantes :0.001,0.01et0.1. - Itérez sur votre liste
eta_valsà l’aide d’une bouclefor. - À chaque itération de la boucle
for, définissez la clé"eta"deparamségale àcurr_val. Ensuite, effectuez une validation croisée à 3 plis avec arrêt anticipé (5tours),10tours de boosting, une métrique"rmse", et unseedde123. Assurez-vous que la sortie est un DataFrame. - Ajoutez la RMSE du dernier tour à la liste
best_rmse.
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 (boosting round)
params = {"objective":"reg:squarederror", "max_depth":3}
# Create list of eta values and empty list to store final round rmse per xgboost model
____ = [____, ____, ____]
best_rmse = []
# Systematically vary the eta
for curr_val in ____:
params["___"] = curr_val
# Perform cross-validation: cv_results
cv_results = ____
# Append the final round rmse to best_rmse
____.____(____["____"].tail().values[-1])
# Print the resultant DataFrame
print(pd.DataFrame(list(zip(eta_vals, best_rmse)), columns=["eta","best_rmse"]))