CommencezCommencez gratuitement

Ajuster eta

Il est temps de vous exercer à régler d'autres hyperparamètres d'XGBoost et d'observer leur effet sur la performance du modèle! Vous commencerez par ajuster "eta", aussi appelé le taux d'apprentissage (learning rate).

Dans XGBoost, le taux d'apprentissage est un paramètre qui peut varier entre 0 et 1. Des valeurs plus élevées de "eta" pénalisent plus fortement les poids des caractéristiques, ce qui entraîne une régularisation beaucoup plus marquée.

Cette activité fait partie du cours

Amorçage de gradient avancé avec XGBoost

Voir le cours

Instructions de l’exercice

  • Créez une liste nommée eta_vals pour stocker les valeurs "eta" suivantes : 0.001, 0.01 et 0.1.
  • Parcourez votre liste eta_vals à l'aide d'une boucle for.
  • À chaque itération de la boucle for, fixez la clé "eta" de params à curr_val. Ensuite, effectuez une validation croisée à 3 plis avec arrêt hâtif (5 itérations), 10 itérations de rehaussement (boosting), une métrique "rmse" et un seed de 123. Assurez-vous que la sortie soit un DataFrame.
  • Ajoutez la valeur de la RMSE de la dernière itération à 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"]))
Modifier et exécuter le code