Reglarea parametrului eta
E momentul să exersezi reglarea altor hiperparametri XGBoost și să observi efectul acestora asupra performanței modelului! Vei începe cu reglarea parametrului "eta", cunoscut și sub numele de rată de învățare.
Rata de învățare în XGBoost este un parametru cu valori cuprinse între 0 și 1. Valorile mai mari ale parametrului "eta" penalizează mai puternic ponderile caracteristicilor, ceea ce duce la o regularizare mai accentuată.
Acest exercițiu face parte din cursul
Gradient Boosting Extrem cu XGBoost
Instrucțiuni pentru exercițiu
- Creează o listă numită
eta_valspentru a stoca următoarele valori ale parametrului"eta":0.001,0.01și0.1. - Iterează prin lista
eta_valsfolosind o buclăfor. - În fiecare iterație a buclei
for, setează cheia"eta"dinparamsca fiind egală cucurr_val. Apoi, efectuează o validare încrucișată cu 3 fold-uri, cu oprire timpurie (5runde),10runde de boosting, metrica"rmse"și o valoareseedde123. Asigură-te că rezultatul este un DataFrame. - Adaugă valoarea RMSE din ultima rundă în lista
best_rmse.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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"]))