Kom igångKom igång gratis

Justera eta

Nu är det dags att öva på att justera andra hyperparametrar i XGBoost och observera hur de påverkar modellens prestanda! Du börjar med att justera "eta", även känd som inlärningshastigheten.

Inlärningshastigheten i XGBoost är en parameter som kan variera mellan 0 och 1. Högre värden på "eta" straffar särdragsvikterna hårdare, vilket ger betydligt starkare regularisering.

Den här övningen är en del av kursen

Extreme Gradient Boosting med XGBoost

Visa kurs

Övningsinstruktioner

  • Skapa en lista med namnet eta_vals för att lagra följande "eta"-värden: 0.001, 0.01 och 0.1.
  • Iterera över listan eta_vals med en for-loop.
  • I varje iteration av for-loopen anger du nyckeln "eta" i params till curr_val. Utför sedan 3-faldig korsvalidering med tidig stopp (5 rundor), 10 boostringsrundor, måttet "rmse" och ett seed123. Se till att utdata är en DataFrame.
  • Lägg till det slutliga RMSE-värdet i listan best_rmse.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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"]))
Redigera och kör kod