Strojenie eta
Czas poćwiczyć strojenie innych hiperparametrów XGBoost i zobaczyć, jak wpływają na wydajność modelu! Zaczniesz od strojenia parametru "eta", czyli współczynnika uczenia.
Współczynnik uczenia w XGBoost to parametr przyjmujący wartości z przedziału 0–1. Wyższe wartości "eta" silniej penalizują wagi cech, co przekłada się na mocniejszą regularyzację.
To ćwiczenie jest częścią kursu
Extreme Gradient Boosting with XGBoost
Instrukcje do ćwiczenia
- Utwórz listę o nazwie
eta_vals, w której zapiszesz następujące wartości"eta":0.001,0.01i0.1. - Przejdź przez listę
eta_valsza pomocą pętlifor. - W każdej iteracji pętli
forustaw klucz"eta"wparamsna wartośćcurr_val. Następnie przeprowadź 3-krotną walidację krzyżową z wczesnym zatrzymaniem (5rund),10rundami boostingu, miarą"rmse"iseedrównym123. Zadbaj o to, aby wynik był obiektem DataFrame. - Dołącz wartość RMSE z ostatniej rundy do listy
best_rmse.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# 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"]))