Veri Sızıntısı (Data Leakage): ML Projelerinin En Sık "Sessiz Katili"
Test setinde %99 doğruluk, üretimde %60. Aradaki fark sizi öldürür. Veri sızıntısı, ML hatalarının kralı.

"Modelim %99 doğru, ama üretimde patladı"
Her veri bilimci bunu yaşar. Nedeni: data leakage (veri sızıntısı).
Tanım: model eğitim sırasında, gerçek dünyada erişemeyeceği bilgiyi kullanır. Test seti aldatıcı yüksek skor verir.
Türler
1. Target leakage
Hedef değişken, özellik olarak modele veriliyor (doğrudan veya dolaylı).
Klasik örnek: hastalık tahmini.
- Özellikler arasında: "antibiyotik aldı mı?"
- Hasta antibiyotik aldıysa zaten hasta → mükemmel ama anlamsız tahmin.
Çözüm: hedefin sonucu olabilecek özellikleri çıkar.
2. Train-test contamination
Test verisi eğitime karışmış.
Örnek:
- Aynı müşteri hem train hem test sette.
- Aynı resim farklı augmentation ile her ikisinde.
- Hisse senedi: aynı şirket farklı tarihlerde.
Çözüm: dikkatli split (grup, zaman bazlı).
3. Time travel
Geleceğin bilgisini geçmişin tahminine kullanma.
Örnek: 2024 satış tahmini için 2024 ortalamasını feature kullanma.
Çözüm: rolling/expanding window — sadece o ana kadar olan bilgi.
4. Preprocessing sızıntısı
# YANLIŞ:
scaler.fit(X_all) # tüm veri ile fit
X_train = scaler.transform(X_train)
X_test = scaler.transform(X_test)
Scaler test setinin istatistiklerini öğrendi.
# DOĞRU:
scaler.fit(X_train)
X_test = scaler.transform(X_test)
5. Cross-validation hatası
# YANLIŞ:
X_imputed = imputer.fit_transform(X)
cross_val_score(model, X_imputed, y, cv=5)
Imputer tüm veriden imputation öğrendi.
# DOĞRU:
pipeline = make_pipeline(imputer, model)
cross_val_score(pipeline, X, y, cv=5)
Pratik örnekler
Telekom churn
Sızıntı: "müşterinin iptal sebebi" özelliği — iptal sonrası giriliyor.
Çözüm: sadece iptal tarihinden ÖNCEKİ bilgiler.
Kredi onay
Sızıntı: "kredi sonrası gelir değişimi".
Çözüm: sadece başvuru tarihindeki bilgiler.
Tıbbi tanı
Sızıntı: görüntü dosya isminde "kanser_var" ibaresi (yanlışlıkla ID).
Çözüm: metaverileri temizle.
Reklam tıklama
Sızıntı: "kullanıcı sayfada ne kadar kaldı" — sadece tıkladıysa biliyoruz.
Çözüm: post-hoc bilgiler dışla.
Tespit yolları
1. Aşırı yüksek skor şüphesi
Test doğruluğunuz %99'a yakınsa: şüphelen. Çoğu ML problemi bu kadar kolay değil.
2. Feature importance
Tek bir özellik tüm açıklama gücüne sahipse: muhtemelen sızıntı.
3. Reverse engineering
"Bu özellik üretim zamanında var olur mu?" sorusunu her özellik için sor.
4. Train vs prod karşılaştırması
Üretim performansı eğitimden çok düşükse: sızıntı + overfitting karışımı.
Önleme stratejileri
1. Pipeline kullan
scikit-learn pipeline veya MLflow ile eğitim-değerlendirme akışını tek nesne olarak yönet.
2. Stratified, group, time-based split
- Sınıflandırma: stratified split.
- Müşteri tahmini: müşteri bazında split (aynı müşteri tek tarafta).
- Zaman serisi: zamana göre split (geleceği görme).
3. Cross-validation içinde tüm ön işleme
Imputation, scaling, feature engineering — hepsi CV içinde.
4. Hold-out test
CV ile model seçimi → hold-out sette son test.
5. Domain expert ile gözden geçirme
Tıbbi proje: doktor ile özellikleri kontrol et.
Modern AI'da
LLM çağında yeni sorun: benchmark contamination.
MMLU, HumanEval, GSM-8K test setlerinin internet üzerinde olması → model eğitiminde görür.
Sonuç: rapor edilen benchmark skorları şişirilmiş.
Çözüm: yeni, gizli benchmarks (LMSYS Arena, Hidden eval).
Türk vakaları
- Bir Türk fintek: kredi modeli %95 AUC → üretimde %72. Sızıntı: başvuru tarihinden sonraki ödeme.
- E-ticaret churn: müşteri ID'sinde gizli pattern.
- Sigorta tarama: COVID döneminde tıbbi veride zaman sızıntısı.
Kapanış
Veri sızıntısı görünmez ama öldürücü. Bir veri bilimci için en önemli beceri: şüpheci olmak. Her başarılı modeli sorgula: "Acaba sızıntı mı var?"
Kahin sözü: yüksek test skorunu kutlama → araştır. Çünkü asıl test üretimde başlar.
Etiketler
Kendinizi Test Edin
Cevaplarınız profilinizde istatistik olarak saklanır.
1. Data leakage nedir?
2. Klasik target leakage örneği?
3. Preprocessing sızıntısı nasıl önlenir?
4. Zaman serisi için doğru split?
5. Modern AI'da yeni sızıntı türü?
İlgili Yazılar
Kıyamet Argümanı: Olasılıkla İnsanlığın Ömrü Tahmin Edilebilir mi?
Sadece "sıradan bir insan" olduğunuz varsayımından yola çıkarak, insan türünün daha ne kadar süreceğini tahmin etmeye çalışan tuhaf bir akıl yürütme var. İkna edici mi, yoksa istatistiğin bir tuzağı mı?
MatematikManifold Nedir? Eğri Uzayları "Düzleştirerek" Anlamanın Matematiği
Dünya yuvarlaktır, ama elinizdeki harita düzdür ve gayet işe yarar. İşte manifold fikri tam olarak budur: küçük parçaları düz görünen, ama bütünüyle eğri olabilen uzaylar. Modern geometrinin ve fiziğin dili.
MatematikKasa Avantajı: Neden Kumarda Uzun Vadede Kasa Her Zaman Kazanır?
Kumarhaneler şansa dayalı görünür, ama aslında en güvenilir gelir kaynaklarından biridir. Sırrı hilede değil, her oyuna gömülü minik bir matematiksel eşitsizlikte ve büyük sayılar yasasında saklı.