İçeriğe geç
Yapay Zekâ Defteriİletişim
Veri Bilimi1 dakikalık okuma

Veri sızıntısı: model testte parlıyor, sahada neden çöküyor?

Test skoru şüphe uyandıracak kadar iyiyse sorun çoğu zaman modelde değil, verinin bölünme biçimindedir.

Derste en sık karşılaştığım soru şu: “Hocam, test doğruluğu yüzde 98, ama gerçek veride model işe yaramıyor.” Bu durumda ilk bakılacak yer model değil, verinin nasıl hazırlandığıdır. Büyük olasılıkla eğitim sırasında modelin görmemesi gereken bir bilgi ona sızmıştır.

Sızıntının üç yaygın kaynağı

  1. Bölmeden önce ön işleme. Ölçeklendirme, eksik değer doldurma ya da özellik seçimi bütün veri üzerinde yapılırsa, test kümesinin istatistikleri eğitime karışır. Bu adımlar yalnızca eğitim verisiyle öğrenilmeli, teste sadece uygulanmalıdır.
  2. Zamanı yok saymak. Gelecekteki bir olayı tahmin eden modelde rastgele bölme, modelin “geleceği” görerek eğitilmesi demektir. Zamana bağlı verilerde bölme de zamana göre yapılmalıdır.
  3. Aynı varlığın iki tarafta olması. Aynı hastanın farklı görüntüleri ya da aynı müşterinin farklı işlemleri hem eğitimde hem testte yer alırsa model genellemeyi değil, ezberlemeyi öğrenir. Bölme, varlık (hasta, müşteri) düzeyinde yapılmalıdır.

Pratik bir kontrol

Ön işlemeyi ve modeli tek bir Pipeline içine koyup çapraz doğrulamayı bu boru hattı üzerinde çalıştırmak, ilk iki hatanın büyük kısmını yapısal olarak engeller. Üçüncüsü için GroupKFold gibi grup bazlı bölme yöntemleri kullanılabilir.

Test skoru beklenenden çok iyiyse kutlamadan önce verinin nasıl bölündüğünü kontrol edin.