Gradient boosting modellerinde erken durdurma (early stopping), aşırı öğrenmeyi önlemek ve eğitim süresini kısaltmak için kullanılan güçlü bir düzenlileştirme tekniğidir. Doğru ayarlandığında, modelin genelleme başarımını artırırken gereksiz hesaplama yükünü azaltır. Bu kılavuzda erken durdurmanın ne olduğu, nasıl çalıştığı ve en iyi sonuçları almak için hangi parametrelerin nasıl ayarlanacağı anlatılmaktadır.
Erken Durdurma Nedir ve Neden Kullanılmalıdır?
Erken durdurma, model eğitimi sırasında doğrulama kümesi üzerindeki performansın belirli bir sayıda adım (patience) boyunca iyileşmemesi durumunda eğitimi durdurma yöntemidir. Bu sayede model, eğitim verisine aşırı uyum sağlamadan (overfitting) önce durdurulur. Özellikle gradient boosting gibi yinelemeli algoritmalarda, ağaç sayısı (n_estimators) arttıkça overfitting riski belirginleşir. Erken durdurma, optimal ağaç sayısını otomatik olarak bulmanın etkili bir yoludur.
Erken durdurma, doğrulama kümesi olmadan çalışmaz; her zaman eğitim verisinden ayrılmış bir validation set kullanın. Aksi halde erken durdurma anlamsızlaşır ve modelin genelleme başarımını doğru değerlendiremezsiniz.
Erken Durdurma Parametreleri: Patience, Min Delta ve Validation Set
Erken durdurmanın üç temel bileşeni vardır:
- Patience (Sabır): Doğrulama performansında iyileşme görülmeden önce kaç adım beklenileceğini belirler. Düşük patience (örneğin 5) erken durmaya neden olurken, yüksek değer (50) geç durdurma sağlar. Genellikle 10-50 arası önerilir.
- Min Delta (Minimum Değişim): İyileşme olarak kabul edilecek minimum performans artışı. Örneğin 0.001, doğrulama kaybında en az %0.1 iyileşme gerektirir. Çok küçük değerler duyarlılığı artırır, büyük değerler ise erken durdurmaya sebep olabilir.
- Validation Set (Doğrulama Kümesi): Modelin durdurulması için performansın izlendiği veri kümesi. Eğitim verisinden %10-20 oranında ayrılmalı ve dağılımı eğitim verisini temsil etmelidir. Cross-validation da kullanılabilir.
Learning Rate ve N_estimators Dengesi
Gradient boosting'de learning rate (öğrenme oranı) ile n_estimators (ağaç sayısı) arasında ters bir ilişki vardır. Düşük learning rate (örneğin 0.01) daha fazla ağaç gerektirirken, yüksek learning rate (0.3) daha az ağaçla çalışabilir. Erken durdurma, bu ikiliyi otomatik olarak optimize eder: düşük learning rate ile çok sayıda ağaç eğitilir ve en uygun sayıda durdurulur. Pratik bir başlangıç noktası learning_rate=0.1 ve n_estimators=1000 olup, erken durdurma ile 200-500 ağaçta durmak yaygındır.
| Kütüphane | Erken Durdurma Parametresi | Varsayılan Patience | Not |
|---|---|---|---|
| XGBoost | early_stopping_rounds | None | Doğrulama kümesi eval_set ile verilmelidir. |
| LightGBM | early_stopping_round | None | Doğrulama kümesi valid_sets ile verilir. |
| CatBoost | early_stopping_rounds | None | eval_set parametresine bağlıdır. |
Erken Durdurma ile Model Performansı Nasıl İyileştirilir?
Doğru erken durdurma ayarları, daha iyi genelleme ve daha kısa eğitim süresi sağlar. İşte uygulama adımları:
- Veriyi eğitim (%80) ve doğrulama (%20) olarak ayırın. Stratified split sınıf dengesizliğinde faydalıdır.
- Yüksek n_estimators (örneğin 1000) ve makul bir learning rate (0.05-0.1) ile modeli eğitin.
- Patience değerini 10-20 arası seçin. Min delta için 0.001 başlangıç değeri uygundur.
- Eğitim sırasında doğrulama kaybını (veya metriği) izleyin. Kayıp artmaya başladığında erken durdurma devreye girecektir.
- Son olarak, elde edilen optimal ağaç sayısını not alın ve gerektiğinde farklı patience değerleriyle denemeler yapın.
Daha kapsamlı bir hiperparametre araması için Hiperparametre Optimizasyonu İçin AI Araçları yazımıza göz atabilirsiniz.
Sık Yapılan Hatalar ve Dikkat Edilmesi Gerekenler
Hata 1: Doğrulama kümesi olmadan erken durdurma kullanmak. Bu durumda eğitim kaybı izlenir ve overfitting önlenemez. Çözüm: Her zaman doğrulama kümesini ayırın.
Hata 2: Patience değerini çok düşük (örneğin 2) ayarlamak. Bu, modeli gereksiz yere erken durdurarak yetersiz öğrenmeye (underfitting) yol açar. Çözüm: Patience'ı en az 10, tercihen 20 olarak belirleyin.
Hata 3: Min delta'yı çok yüksek (örneğin 0.1) seçmek. Küçük iyileşmeler göz ardı edilir ve model erken durur. Çözüm: Min delta'yı 0.001 veya daha düşük tutun.
Hata 4: Doğrulama kümesinin eğitim verisiyle aynı dağılıma sahip olmaması. Bu durumda erken durdurma yanıltıcı olur. Çözüm: Doğrulama kümesini rastgele ve temsili bir şekilde ayırın. Zaman serisi verilerinde zaman bazlı ayırma kullanın.
Veri ön işleme aşamasında temizlik için Veri Temizleme İçin En Etkili AI Araçları faydalı olacaktır. Ayrıca, L1 ve L2 düzenlileştirme yöntemlerini L1 ve L2 Regularizasyonu makalemizde inceleyebilirsiniz.
Pratik Uygulama: XGBoost ile Erken Durdurma
Aşağıda XGBoost kullanarak erken durdurmanın nasıl uygulanacağına dair bir kod örneği verilmiştir. (Python):
import xgboost as xgb
from sklearn.model_selection import train_test_split
X_train, X_val, y_train, y_val = train_test_split(X, y, test_size=0.2, random_state=42)
dtrain = xgb.DMatrix(X_train, label=y_train)
dval = xgb.DMatrix(X_val, label=y_val)
params = {
'objective': 'binary:logistic',
'learning_rate': 0.1,
'max_depth': 6
}
model = xgb.train(
params,
dtrain,
num_boost_round=1000,
evals=[(dval, 'validation')],
early_stopping_rounds=20,
verbose_eval=50
)
print(f"Optimal ağaç sayısı: {model.best_ntree_limit}")
Burada early_stopping_rounds=20 ile model, doğrulama hatası 20 tur boyunca iyileşmezse durur. En iyi ağaç sayısını best_ntree_limit ile alabilirsiniz.
Sonuç
Erken durdurma, gradient boosting modellerinde vazgeçilmez bir tekniktir. Doğru parametrelerle (validation set, patience, min delta) both time ve overfitting kontrol altına alınır. Deneyerek ve hiperparametre optimizasyon araçlarıyla birleştirerek en iyi sonucu elde edebilirsiniz.
Sık Sorulan Sorular
Erken durdurma (early stopping) nedir?
Erken durdurma, model eğitimi sırasında doğrulama performansı belirli bir sayıda adım boyunca iyileşmediğinde eğitimi durdurma tekniğidir. Aşırı öğrenmeyi önler ve eğitim süresini kısaltır.
Erken durdurma için patience değeri nasıl seçilir?
Patience genellikle 10-50 arasında seçilir. Düşük değerler erken durmaya, yüksek değerler geç durmaya neden olur. Veri seti büyüklüğüne ve problem türüne göre ayarlanmalıdır.
Erken durdurma olmadan gradient boosting kullanılabilir mi?
Evet, kullanılabilir ancak ağaç sayısını manuel olarak belirlemek gerekir ve overfitting riski artar. Erken durdurma, otomatik optimizasyon sağlar.
Hangi gradient boosting kütüphaneleri erken durdurmayı destekler?
XGBoost, LightGBM ve CatBoost erken durdurmayı destekler. Her biri benzer parametreler sunar, ancak farklı isimlendirmeler kullanır (örneğin early_stopping_rounds).
Erken durdurma ile doğrulama kümesi olmazsa ne olur?
Doğrulama kümesi olmadan erken durdurma anlamsızdır çünkü eğitim kaybı üzerinden izleme yapılır ve overfitting engellenemez. Her zaman ayrı bir doğrulama seti kullanılmalıdır.






