early_stopping kullanarak otomatik boosting turu seçimi
Artık en iyi boosting turu sayısını tek tek seçmeye çalışmak yerine, xgb.cv() içinde XGBoost’un senin için otomatik olarak boosting turu sayısını seçmesini kolayca sağlayabilirsin. Bu, early stopping adı verilen bir teknikle yapılır.
Early stopping, her boosting turundan sonra XGBoost modelini bir hold-out veri kümesine karşı test ederek çalışır ve eğer hold-out metriği (bizim durumda "rmse") belirli sayıda tur boyunca iyileşmezse ek boosting turlarının oluşturulmasını durdurur (böylece eğitimi erken bitirir). Burada xgb.cv() içinde early_stopping_rounds parametresini, mümkün olan yüksek bir boosting turu sayısı (50) ile birlikte kullanacaksın. Unutma, eğer hold-out metriği num_boost_rounds değerine kadar sürekli iyileşirse early stopping tetiklenmez.
Burada DMatrix ve parametre sözlüğü senin için oluşturuldu. Görevin, early stopping ile çapraz doğrulama yapmak. Hadi başla!
Bu egzersiz
XGBoost ile Aşırı Gradyan Artırma
kursunun bir parçasıdırEgzersiz talimatları
- Early stopping ile 3 katlı çapraz doğrulama yap ve metriğin
"rmse"olsun.10early stopping turu ve50boosting turu kullan.seedolarak123belirt ve çıktının birpandasDataFrame olduğundan emin ol.dtrain,paramsvemetricsgibi diğer parametreleri de belirtmeyi unutma. cv_resultsdeğerini yazdır.
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
# 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(____)