LoslegenKostenlos loslegen

eta abstimmen

Jetzt ist es an der Zeit, weitere XGBoost-Hyperparameter systematisch abzustimmen und ihre Auswirkung auf die Modellleistung zu beobachten! Du beginnst mit der Abstimmung von "eta", auch bekannt als Lernrate.

Die Lernrate in XGBoost ist ein Parameter im Bereich von 0 bis 1. Höhere Werte von "eta" bestrafen die Feature-Gewichte stärker und führen dadurch zu einer kräftigeren Regularisierung.

Diese Übung ist Teil des Kurses

Extreme Gradient Boosting mit XGBoost

Kurs anzeigen

Anleitung zur Übung

  • Erstelle eine Liste namens eta_vals, in der die folgenden "eta"-Werte gespeichert sind: 0.001, 0.01 und 0.1.
  • Iteriere mit einer for-Schleife über deine Liste eta_vals.
  • Setze in jeder Iteration der for-Schleife den Schlüssel "eta" in params auf curr_val. Führe dann eine 3-fache Cross-Validation mit Early Stopping (5 Runden), 10 Boosting-Runden, der Metrik "rmse" und einem seed von 123 durch. Stelle sicher, dass die Ausgabe ein DataFrame ist.
  • Hänge die RMSE der letzten Runde an die Liste best_rmse an.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# 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"]))
Code bearbeiten und ausführen