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

Automatický výběr počtu kol boostingu pomocí early_stopping

Místo ručního hledání optimálního počtu kol boostingu můžeš nechat XGBoost, aby ho za tebe vybral automaticky přímo v xgb.cv(). Slouží k tomu technika zvaná early stopping.

Early stopping funguje tak, že po každém kole boostingu testuje model XGBoost na validační sadě a zastaví trénink (tedy ukončí přidávání dalších kol), pokud se zvolená metrika ("rmse" v našem případě) po zadaný počet kol nezlepší. Tady použiješ parametr early_stopping_rounds v xgb.cv() s velkým maximálním počtem kol (50). Měj na paměti, že pokud se validační metrika neustále zlepšuje až do dosažení hodnoty num_boost_rounds, k early stoppingu nedojde.

DMatrix a slovník parametrů jsou už pro tebe připraveny. Tvůj úkol je spustit křížovou validaci s early stoppingem. Jde se na to!

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

Extreme Gradient Boosting with XGBoost

Zobrazit kurz

Pokyny k cvičení

  • Proveď 3-násobnou křížovou validaci s early stoppingem a jako metriku použij "rmse". Nastav 10 kol pro early stopping a 50 kol boostingu. Zadej seed s hodnotou 123 a zajisti, aby výstup byl pandas DataFrame. Nezapomeň zadat i ostatní parametry, jako jsou dtrain, params a metrics.
  • Vypiš cv_results.

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: params
params = {"objective":"reg:squarederror", "max_depth":4}

# Perform cross-validation with early stopping: cv_results
cv_results = ____

# Print cv_results
print(____)
Upravit a spustit kód