Ladění parametru eta
Je čas si pořádně procvičit ladění dalších hyperparametrů XGBoostu a sledovat, jak ovlivňují výkon modelu! Začneme parametrem "eta", známým také jako rychlost učení.
Rychlost učení v XGBoostu je parametr v rozsahu od 0 do 1. Vyšší hodnoty "eta" silněji penalizují váhy příznaků, což vede k výraznější regularizaci.
Toto cvičení je součástí kurzu
Extreme Gradient Boosting with XGBoost
Pokyny k cvičení
- Vytvoř seznam
eta_vals, do kterého uložíš následující hodnoty"eta":0.001,0.01a0.1. - Projdi seznam
eta_valspomocí cyklufor. - V každé iteraci cyklu
fornastav klíč"eta"vparamsna hodnotucurr_val. Poté proveď 3násobnou křížovou validaci s předčasným zastavením (5kol),10boosting koly, metrikou"rmse"a hodnotouseednastavenou na123. Výstup musí být ve formátu DataFrame. - Přidej hodnotu RMSE z posledního kola do seznamu
best_rmse.
Interaktivní cvičení na vyzkoušení si v praxi
Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.
# 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"]))