CommencerCommencer 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

Extreme Gradient Boosting avec XGBoost

Afficher le cours

Instructions

  • 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 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"]))
Modifier et exécuter le code