CommencerCommencez gratuitement

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>
Voir le cours

Instructions de l’exercice

  • Créez une liste appelée eta_vals pour stocker les valeurs de "eta" suivantes : 0.001, 0.01 et 0.1.
  • Itérez sur votre liste eta_vals à l’aide d’une boucle for.
  • À chaque itération de la boucle for, définissez la clé "eta" de params égale à curr_val. Ensuite, effectuez une validation croisée à 3 plis avec arrêt anticipé (5 tours), 10 tours de boosting, une métrique "rmse", et un seed de 123. 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"]))
Modifier et exécuter le code