Kom igångKom igång gratis

Automatiskt val av boosting-rundor med early stopping

I stället för att manuellt försöka hitta det optimala antalet boosting-rundor kan du låta XGBoost välja det automatiskt direkt i xgb.cv(). Det görs med hjälp av en teknik som kallas early stopping.

Early stopping fungerar genom att XGBoost-modellen testas mot ett hållout-dataset efter varje boosting-runda. Om hållout-måttet ("rmse" i det här fallet) inte förbättras under ett visst antal rundor avslutas träningen i förtid. Här använder du parametern early_stopping_rounds i xgb.cv() med ett stort möjligt antal boosting-rundor (50). Tänk på att om hållout-måttet fortsätter att förbättras hela vägen tills num_boost_rounds nås, sker ingen early stopping.

Här har DMatrix och parameterordlistan redan skapats åt dig. Din uppgift är att använda korsvalidering med early stopping. Kör på!

Den här övningen är en del av kursen

Extreme Gradient Boosting med XGBoost

Visa kurs

Övningsinstruktioner

  • Utför 3-faldig korsvalidering med early stopping och "rmse" som mått. Använd 10 early stopping-rundor och 50 boosting-rundor. Ange seed som 123 och se till att utdata är en pandas DataFrame. Kom ihåg att ange övriga parametrar såsom dtrain, params och metrics.
  • Skriv ut cv_results.

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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(____)
Redigera och kör kod