ÎncepețiÎncepe gratuit

Selectarea automată a rundelor de boosting cu early_stopping

În loc să încerci să alegi manual cel mai bun număr de runde de boosting, poți lăsa XGBoost să îl determine automat, direct în xgb.cv(). Această tehnică se numește early stopping (oprire timpurie).

Early stopping funcționează testând modelul XGBoost după fiecare rundă de boosting pe un set de date de validare și oprind antrenamentul dacă metrica de evaluare ("rmse" în cazul nostru) nu se îmbunătățește timp de un număr dat de runde. În acest exercițiu vei folosi parametrul early_stopping_rounds în xgb.cv() cu un număr maxim de 50 de runde de boosting. Reține că, dacă metrica de validare continuă să se îmbunătățească până când se atinge num_boost_rounds, oprirea timpurie nu va avea loc.

DMatrix și dicționarul de parametri au fost deja create pentru tine. Sarcina ta este să aplici validarea încrucișată cu early stopping. Mult succes!

Acest exercițiu face parte din cursul

Gradient Boosting Extrem cu XGBoost

Vezi cursul

Instrucțiuni pentru exercițiu

  • Efectuează o validare încrucișată cu 3 folduri, cu early stopping și "rmse" ca metrică. Folosește 10 runde pentru early stopping și 50 runde de boosting. Specifică un seed de 123 și asigură-te că rezultatul este un DataFrame pandas. Nu uita să specifici și ceilalți parametri, cum ar fi dtrain, params și metrics.
  • Afișează cv_results.

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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(____)
Editează și rulează codul