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

Použití regularizace v XGBoost

Po ukázce l1 regularizace ve videu teď budeš měnit penalizaci l2 regularizace – známou také jako "lambda" – a sledovat, jak ovlivňuje celkový výkon modelu na datasetu cen nemovitostí v Ames.

Toto cvičení je součástí kurzu

Extreme Gradient Boosting with XGBoost

Zobrazit kurz

Pokyny k cvičení

  • Vytvoř DMatrix z X a y stejně jako předtím.
  • Vytvoř počáteční slovník parametrů s hodnotou "objective" nastavenou na "reg:squarederror" a "max_depth" rovným 3.
  • Použij xgb.cv() uvnitř smyčky for a systematicky měň hodnotu "lambda" předáváním aktuální hodnoty l2 (reg).
  • Pro každý cross-validovaný model xgboost přidej hodnotu "test-rmse-mean" z poslední boosting iterace.
  • Klikni na Submit Answer a prohlédni si výsledky. Co si všimneš?

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 the DMatrix: housing_dmatrix
housing_dmatrix = xgb.DMatrix(data=X, label=y)

reg_params = [1, 10, 100]

# Create the initial parameter dictionary for varying l2 strength: params
params = {"____":"____","____":____}

# Create an empty list for storing rmses as a function of l2 complexity
rmses_l2 = []

# Iterate over reg_params
for reg in reg_params:

    # Update l2 strength
    params["lambda"] = ____
    
    # Pass this updated param dictionary into cv
    cv_results_rmse = ____.____(dtrain=____, params=____, nfold=2, num_boost_round=5, metrics="rmse", as_pandas=True, seed=123)
    
    # Append best rmse (final round) to rmses_l2
    ____.____(____["____"].tail(1).values[0])

# Look at best rmse per l2 param
print("Best rmse as a function of l2:")
print(pd.DataFrame(list(zip(reg_params, rmses_l2)), columns=["l2", "rmse"]))
Upravit a spustit kód