Začněte nyníZačněte zdarma

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

Zobrazit kurz

Pokyny k cvičení

  • Vytvoř seznam eta_vals, do kterého uložíš následující hodnoty "eta": 0.001, 0.01 a 0.1.
  • Projdi seznam eta_vals pomocí cyklu for.
  • V každé iteraci cyklu for nastav klíč "eta" v params na hodnotu curr_val. Poté proveď 3násobnou křížovou validaci s předčasným zastavením (5 kol), 10 boosting koly, metrikou "rmse" a hodnotou seed nastavenou na 123. 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"]))
Upravit a spustit kód