Zacznij terazZacznij za darmo

Automatyczny dobór liczby rund boostingu z użyciem early_stopping

Zamiast ręcznie szukać optymalnej liczby rund boostingu, możesz pozwolić, żeby XGBoost sam ją dobrał – za pomocą funkcji xgb.cv(). Służy do tego technika zwana wczesnym zatrzymaniem (early stopping).

Wczesne zatrzymanie polega na tym, że po każdej rundzie boostingu model jest oceniany na zbiorze walidacyjnym. Jeśli wybrana metryka ("rmse" w naszym przypadku) nie poprawia się przez określoną liczbę rund, trening zostaje zakończony przed osiągnięciem maksymalnej liczby rund. Pamiętaj, że jeśli metryka na zbiorze walidacyjnym stale się poprawia aż do osiągnięcia wartości num_boost_rounds, wczesne zatrzymanie nie zostanie uruchomione.

Obiekt DMatrix oraz słownik parametrów zostały już dla ciebie przygotowane. Twoim zadaniem jest przeprowadzenie kroswalidacji z wczesnym zatrzymaniem. Do dzieła!

To ćwiczenie jest częścią kursu

Extreme Gradient Boosting with XGBoost

Zobacz kurs

Instrukcje do ćwiczenia

  • Przeprowadź 3-krotną kroswalidację z wczesnym zatrzymaniem, używając "rmse" jako metryki. Ustaw 10 rund wczesnego zatrzymania i 50 rund boostingu. Podaj wartość seed równą 123 i upewnij się, że wynik jest zwracany jako DataFrame biblioteki pandas. Pamiętaj o podaniu pozostałych parametrów, takich jak dtrain, params i metrics.
  • Wyświetl cv_results.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

# 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(____)
Edytuj i uruchom kod