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
Pokyny k cvičení
- Proveď 3-násobnou křížovou validaci s early stoppingem a jako metriku použij
"rmse". Nastav10kol pro early stopping a50kol boostingu. Zadejseeds hodnotou123a zajisti, aby výstup bylpandasDataFrame. Nezapomeň zadat i ostatní parametry, jako jsoudtrain,paramsametrics. - 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(____)