Cross-validation nedir? Zaman serisi verisinde neden standart k-fold kullanılmaz?
Cevap
Cross-validation, veriyi birden çok kez farklı train/validation parçalarına bölüp modeli her seferinde yeniden eğiterek performansı daha güvenilir tahmin etme yöntemidir. Tek bir split'in şansa bağlı sonucunu ortalamayla dengeler.
Türleri
- k-fold: Veri k parçaya bölünür, her parça bir kez validation olur. Genelde k=5 veya 10.
- Stratified k-fold: Her fold'da sınıf oranları korunur. Dengesiz sınıflandırmada varsayılan olmalı.
- Group k-fold: Aynı gruba (kullanıcı, hasta) ait örnekler aynı fold'da kalır. Leakage'ı önler.
- Nested CV: İç döngü hiperparametre seçer, dış döngü performansı tarafsız ölçer.
- TimeSeriesSplit: Zaman sırasını koruyan, ileriye doğru genişleyen pencereler.
Zaman serisinde neden k-fold olmaz?
Standart k-fold veriyi karıştırır. Model gelecekteki verilerle eğitilip geçmişi tahmin eder. Bu bir look-ahead leakage'dır ve skorlar gerçekçi olmayacak kadar iyi çıkar. Ayrıca ardışık gözlemler birbirine bağımlıdır (autocorrelation).
from sklearn.model_selection import TimeSeriesSplit
tscv = TimeSeriesSplit(n_splits=5, gap=7) # gap: sızıntıyı azaltmak için boşluk
for tr_idx, va_idx in tscv.split(X):
model.fit(X[tr_idx], y[tr_idx])
print(model.score(X[va_idx], y[va_idx]))Önemli kural: Ölçekleme, imputation, feature selection gibi tüm ön işleme adımları her fold içinde sadece train kısmına fit edilmelidir. Bunu Pipeline ile yapmak en güvenli yoldur.
İlgili Makine Öğrenmesi soruları
- Hiperparametre optimizasyonunu nasıl yaparsınız? Grid search, random search ve Bayesian optimization'ı karşılaştırın.
- Feature scaling nedir? Standardization ile normalization arasındaki fark nedir ve hangi modeller ölçeklendirme gerektirir?
- PCA (Principal Component Analysis) nasıl çalışır? Ne zaman kullanılır, ne zaman kullanılmamalıdır?
- NumPy kullanarak k-means algoritmasını sıfırdan yazın. k değerini nasıl seçersiniz ve algoritmanın sınırlamaları nelerdir?
- XGBoost ve LightGBM klasik gradient boosting'den hangi açılardan farklıdır? En önemli hiperparametreleri nelerdir?
- Random Forest ile Gradient Boosting arasındaki fark nedir? Bagging ve boosting'i karşılaştırın.
Bu konuda başka bir soru biliyor musun?
Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.