Özellik Mühendisliğinde Veri Sızıntısını (Data Leakage) Yakalama Kılavuzu
Test setinde mükemmel skor alıp üretimde başarısız olan modellerin en yaygın nedeni: fark edilmeyen veri sızıntısı.
Veri Sızıntısı Data Leakage, bu yazıda ele aldığımız konunun tam merkezinde yer alıyor; aşağıdaki başlıklarda konuyu uygulanabilir adımlarla ele alıyoruz.
Test setinde %98 doğruluk, üretimde %65 — veri biliminde bu senaryonun en sık nedeni algoritma seçimi değil, veri sızıntısıdır: modelin normalde bilmemesi gereken bir bilgiye eğitim sırasında dolaylı olarak erişmesi.

Zaman sızıntısı
Zaman serisi verilerinde eğitim ve test setini rastgele bölmek, geleceğe ait bilginin geçmişi tahmin etmek için kullanılmasına yol açar. Bir kredi risk modelinde gelecekteki bir ödemenin bilgisi yanlışlıkla geçmiş bir özelliğe sızabilir.
# Yanlış: rastgele bölme zaman serisinde sızıntıya yol açar
X_train, X_test = train_test_split(X, shuffle=True)
# Doğru: zamana göre bölme
cutoff = '2026-01-01'
X_train = df[df.date < cutoff]
X_test = df[df.date >= cutoff]
Hedef sızıntısı
Hedef değişkenin (ya da onun doğrudan türevinin) yanlışlıkla özellik olarak eklenmesi klasik bir hatadır. Örneğin "iptal edildi mi" hedefini tahmin ederken "iptal tarihi" alanının doluluğunu özellik olarak kullanmak, modelin cevabı zaten görmesi anlamına gelir.
Hedef sızıntısı genelde modelin "şüpheli derecede iyi" performans göstermesiyle kendini belli eder — tek bir özelliğin önem skoru diğerlerinden aşırı yüksekse mutlaka inceleyin.
Grup sızıntısı
Aynı hastanın, aynı müşterinin veya aynı cihazın birden fazla kaydı hem eğitim hem test setinde bulunuyorsa, model gerçek genelleme yapmak yerine o varlığı "ezberleyebilir". Bölme işlemi varlık (grup) bazında yapılmalıdır, satır bazında değil.
scikit-learn'deki GroupKFold gibi araçlar, aynı grubun eğitim ve test setine aynı anda düşmesini otomatik olarak engeller.
Konuyu daha derinlemesine incelemek isteyenler için: pandas Resmi Dokümantasyonu.
İlgili Yazılar
- Webhook Uçları Tasarlarken Yapılan 5 Yaygın Hata
- Sunucu Loglarını Okurken Gözden Kaçırdığınız Zaman Dilimi Tuzağı
Pratik Uygulama Kontrol Listesi
Bu yazıdaki önerileri kendi ekibinize uyarlarken aşağıdaki adımları sırasıyla uygulamanız, teoriden pratiğe geçişi kolaylaştırır:
- Mevcut durumu ölçün. Değişiklik yapmadan önce bugünkü performansı/süreyi/hata oranını kaydedin; aksi halde iyileşmeyi kanıtlayamazsınız.
- Küçük bir pilot seçin. Tüm sisteme veya tüm ekibe birden uygulamak yerine tek bir modülde veya tek bir sprintte deneyin.
- Sonuçları ekiple paylaşın. Elde ettiğiniz veriyi (olumlu ya da olumsuz) kısa bir notla ekibe aktarın; kararın gerekçesi belgelenmemişse aynı tartışma birkaç ay sonra tekrar açılır.
- Süreci tekrarlanabilir hale getirin. İşe yarayan pratiği bir kontrol listesine veya şablona dönüştürün ki yeni katılan ekip üyeleri de aynı standardı hızlıca öğrensin.
Veri Sızıntısı Data Leakage konusunda attığınız her küçük adım ölçülebilir olduğu sürece değerlidir; büyük ve tek seferlik dönüşümler yerine sürekli, küçük iyileştirmeler uzun vadede daha kalıcı sonuç verir.
Sık Yapılan Yanlışlar
Bu konuda ekiplerin en çok düştüğü tuzak, çözümü tek bir kişiye ya da tek bir araca yüklemektir. Oysa kalıcı iyileşme, sürecin ekibin günlük rutinine (code review kontrol listesi, sprint planlama, onboarding dokümanı gibi) gömülmesiyle mümkün olur. İkinci yaygın hata ise "en iyi pratiği" olduğu gibi kopyalamaktır — başka bir ekipte işe yarayan bir yaklaşım, farklı bir ölçekte veya farklı bir teknoloji yığınında aynı sonucu vermeyebilir; önce kendi bağlamınızda küçük ölçekte test edin, sonra genişletin. Üçüncü tuzak ise ölçmeden karar vermektir: "daha iyi hissettiriyor" öznel bir gerekçedir, ekip içi tartışmalarda nesnel veriyle desteklenmeyen kararlar er ya da geç sorgulanır ve geri alınır. Son olarak, dokümantasyonu atlamak da sık görülen bir hatadır: bir kararın "neden" alındığı yazılı değilse, ekip altı ay sonra aynı tartışmayı sıfırdan yeniden yapmak zorunda kalır ve önceki deneyimden öğrenilenler kaybolur.
Sonuç
Özellik Mühendisliğinde Veri Sızıntısını (Data Leakage) Yakalama Kılavuzu konusunda burada değindiğimiz noktalar, konuyu ilk kez ele alan ekipler için de deneyimli geliştiriciler için de pratik bir kontrol listesi görevi görür. veri sızıntısı data leakage üzerine çalışırken en çok fayda sağlayan yaklaşım, tek seferde her şeyi mükemmelleştirmeye çalışmak yerine küçük, ölçülebilir adımlarla ilerlemektir. Ekibinizde bu konuyu bir sonraki sprint retrospektifinde veya teknik tartışma toplantısında gündeme getirmenizi, burada anlatılan pratiklerden hangilerinin sizin bağlamınıza uyduğunu birlikte değerlendirmenizi öneririz. Sonuç olarak, doğru araçları seçmek kadar bunları ekip kültürüne oturtmak da başarıyı belirleyen asıl etkendir.
Sık Sorulan Sorular
Özellik önem sıralamasında bir özelliğin aşırı baskın çıkması ve test skorunun beklenenden çok yüksek olması iki güçlü işarettir.
Hayır; bölme stratejisi yanlışsa (örn. zaman veya grup bazlı olmadan) çapraz doğrulama da aynı sızıntıyı her katlamada tekrar eder.
Önce mevcut sürecinizdeki en büyük sürtünme noktasını tespit edin, ardından bu yazıdaki adımlardan sizin ölçeğinize uygun olanları küçük bir pilot uygulamayla test edin.
En yaygın hata, konuyu tek seferlik bir görev gibi ele alıp süreç haline getirmemektir; sürekli gözden geçirme olmadan elde edilen kazanımlar zamanla geri kaybedilir.
Yorumlar (0)
Bu yazıya henüz yorum yapılmamış. İlk yorumu siz yazın!
Yorum Yaz
Yorumunuz onaylandıktan sonra yayınlanır. Ekibimiz gerekirse konuyla ilgili bir yanıt da paylaşır.