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
Petunjuk latihan
- Buat daftar bernama
eta_valsuntuk menyimpan nilai"eta"berikut:0.001,0.01, dan0.1. - Lakukan iterasi atas daftar
eta_valsAnda menggunakan loopfor. - Pada setiap iterasi loop
for, setel kunci"eta"dariparamsagar sama dengancurr_val. Lalu, lakukan cross-validation 3-fold dengan early stopping (5ronde),10ronde boosting, metrik"rmse", danseed123. 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"]))