MulaiMulai sekarang secara gratis

Menyetel eta

Saatnya berlatih menyetel hyperparameter XGBoost lainnya secara serius dan mengamati dampaknya terhadap kinerja model! Anda akan mulai dengan menyetel "eta", yang juga dikenal sebagai learning rate.

Learning rate di XGBoost adalah parameter dengan rentang antara 0 dan 1. Nilai "eta" yang lebih tinggi memberikan penalti lebih kuat pada bobot fitur, sehingga menghasilkan regularisasi yang jauh lebih kuat.

Latihan ini adalah bagian dari kursus

Extreme Gradient Boosting dengan XGBoost

Lihat Kursus

Petunjuk latihan

  • Buat daftar bernama eta_vals untuk menyimpan nilai "eta" berikut: 0.001, 0.01, dan 0.1.
  • Lakukan iterasi atas daftar eta_vals Anda menggunakan loop for.
  • Pada setiap iterasi loop for, setel kunci "eta" dari params agar sama dengan curr_val. Lalu, lakukan cross-validation 3-fold dengan early stopping (5 ronde), 10 ronde boosting, metrik "rmse", dan seed 123. Pastikan keluarannya berupa DataFrame.
  • Tambahkan RMSE ronde terakhir ke daftar best_rmse.

Latihan interaktif praktis

Cobalah latihan ini dengan menyelesaikan kode contoh berikut.

# 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"]))
Edit dan Jalankan Kode