Data Leakage (Veri Sızıntısı (Data Leakage))

ML'de test verisinden ya da gelecekteki bilgilerden sızan verinin model performansını yanıltıcı biçimde şişirmesi.

Veri sızıntısı (data leakage), makine öğrenmesinde eğitim sürecine gerçek dünyada mevcut olmayacak bilgilerin sızması ve bu durumun modelin test veya üretim ortamındaki gerçek performansını yanıltıcı biçimde şişirmesiyle sonuçlanmasıdır. Temel iki türü vardır. Hedef sızıntısında (target leakage) eğitim verisi, tahmin edilmek istenen sonuçtan türetilmiş ya da onunla aşırı korelasyonlu özellikler içerir. Örneğin kredi temerrüt tahmini modelinde "geç ödeme bildirim gönderildi" özelliğinin kullanılması — bu özellik temerrüdün zaten gerçekleştiğine işaret ettiğinden model eğitim setinde mükemmel, üretimde başarısız olur. Eğitim-test kirliğinde (train-test contamination) ise normalleştirme, imputasyon veya özellik seçimi gibi ön işleme adımları ayrı tutulması gereken test verisini de kapsayacak biçimde uygulanır; test seti gerçek anlamıyla "görülmemiş" olmaktan çıkar. Veri sızıntısı genellikle belirti vermeden ilerlediği için tehlikelidir. Çapraz doğrulama süreçlerinde tüm katlara aynı ön işleme pipeline'ı uygulanırsa sızıntı gizli kalır. Üretime geçildiğinde modelin gerçek performansı ile geliştirme ortamındaki arasında dramatik bir uçurum ortaya çıkar. Önlemek için standart yaklaşım şudur: Test setini en baştan ayır ve hiçbir aşamada bu veriye dokunma. Scikit-learn Pipeline nesneleri ile tüm ön işleme adımlarını çapraz doğrulama kıvrımlarına kapsüllenmiş biçimde uygula. Zaman serisi verilerinde kronolojik sırayı mutlaka koru. Bir özelliğin model performansına katkısı inanılmaz derecede yüksekse, o özelliğin sızıntı barındırıp barındırmadığını sorgula. Gerçek dünya sonuçları ağır olabilir: sızıntılı eğitimle %95 doğruluk sergileyen bir kredi modeli bankanın onaylamaması gereken kredileri onaylamasına, sağlık alanında ise yanlış teşhis oranlarının artmasına yol açabilir.