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
Extreme Gradient Boosting avec XGBoost
Instructions
- 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 cet exemple de code.
# 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"]))