Makine Öğreniminde Veri Sızıntısı

A.Oğuzhan Durmaz
Data Runner
Published in
4 min readJul 3, 2020

Makine öğrenmesinde tahminci modeller eğitirken Veri sızıntısı büyük bir problemdir.

Veri sızıntısı eğitim veri kümesinin dışından olan bilgiler ile model üretmek için kullanıldığı zaman ortaya çıkar.

Bu yazıyla birlikte tahminci modellemede veri sızıntısı sorununu keşfedeceksiniz.

Bu yazıyla birlikte;

  • Tahminci modellerde veri sızıntısı nedir
  • Veri sızıntısı işaretleri ve neden sorun teşkil ettiğini
  • Veri sızıntısını en aza indirmek için kullanabileceğiniz ipuçlarını ve püf noktalarını

öğreneceksiniz.

Tahminci Modellemenin Amacı

Tahminci modellemenin amacı yeni veriler üzerinde doğru tahminlerde bulunan bir model geliştirmektir.

Bu zordur çünkü elimizde olmayan bir şey üzerinde modelimizi değerlendiremeyiz.

Bu nedenle modelin görünmeyen veriler üzerindeki performansını elimizde olan verilerin bir kısmını eğitim için kullanıp geri kalan veriler ile değerlendirerek tahmin etmeliyiz.

Çapraz doğrulama ve diğer tekniklerin altında yatan varyansı düşürmeye çalışan bu tekniklerin altında yatan prensip budur.

Veri sızıntısı Nedir?

Tamamen geçersiz modeller olmasa bile veri sızıntısı sizin aşırı iyimser olmanıza sebep olabilir.

Veri sızıntısı eğitim veri kümesinin dışından olan bilgiler model üretmek için kullanıldığı zaman ortaya çıkar. Bu ek bilgiler modelin öğrenmesine ve bilmesine yol açabilir diğer taraftan bilemez ve oluşturulmuş yapının tahmin performansını geçersiz kılabilir.

Bir tahmin yapmak için modeli kullanmak istediğiniz anda değeri pratikte mevcut olmayan bir öznitelik varsa işte o modelinize sızıntı yaptırabilir. (Data Skeptic)

Veri sızıntısı bir Problemdir

En az şu 3 sebepten dolayı ciddi bir sorundur:

  1. Eğer bir makine öğrenmesi yarışması yürütüyorsanız, bir problemdir. Üst modeller alta yatan sorunun iyi bir genel modeli olmak yerine sızdıran verileri kullanacaktır.
  2. Verilerinizi sağlayan bir şirket olduğunuzda, bir problemdir. Anonimleştirmeyi ve gizlemeyi geri çevirmek beklenmedik gizlilik ihlaline sebep olabilir.
  3. Kendi tahminci modelinizi geliştirdiğiniz zaman, bir problemdir. Gerçekte işe yaramayan, ürün olarak kullanılamayacak bir model geliştirebilirsiniz.

Makine öğrenmesi uygulayıcıları olarak biz son sebep üzerine duracağız.

Veri sızıntım var mı?

Bunu anlamanın kolay bir yolu, gerçek olmayacak kadar iyi bir sonuç elde ediyorsanız veri sızıntınız var demektir.

Loto numaralarını tahmin etmek gibi.

“Gerçek olmayacak kadar iyi” performans bunun varlığını ortaya çıkaran şeydir.

(Chapter 13, Doing Data Science: Straight Talk from the Frontline)

Veri sızıntısı daha çok karmaşık veri kümeleriyle ilgili bir problemdir. Örneğin:

  • Eğitim ve test kümeleri oluşturulurken zaman serisi veri kümeleri zor olabilir.
  • Rastgele örnekleme yöntemlerinin yapılandırılmasının zor olabileceği Graf problemleri
  • Örneklerin boyut ve zaman damgası içeren ayrı dosyalar içinde depolandığı ses ve görüntü gibi analog gözlemler

Model inşa ederken Veri sızıntısını en aza indirme Teknikleri

Tahminci model geliştirirken veri sızıntısını en aza indirebileceğimiz iki iyi teknik vardır.

  1. Çapraz doğrulama katmanlarınızda veri hazırlığı yapın.
  2. Geliştirdiğiniz modelin son kontrolü için doğrulama veri kümesini saklayın.

1. Çapraz doğrulama katmanlarınızda veri hazırlığı yapın

Makine öğrenimi için veri hazırladığınızda kolayca veri sızdırabilirsiniz.

Bu etki eğitim veri setinizi aşırı öğrenmeye ve model performansınızın görünmeyen veriler üzerinde iyimser bir değerlendirmeye sebep olabilir.

Örneğin bütün veri kümesini normalleştirirseniz ya da standartlaştırısanız sonra da çapraz doğrulama ile modelinizin performansını tahmin ederseniz işte o zaman veri sızıntısı günahı işlediniz demektir.

Gerçekleştirdiğiniz veri yeniden ölçeklendirme işlemi, ölçeklendirme faktörlerini hesaplarken(minimum, maksimum, ortalama, standart sapma gibi) eğitim veri kümesindeki verilerin tam dağılımı hakkında bilgi sahibi olmuştur. Bu bilgiler tüm yeniden ölçeklenmiş verilere damgalandı ve kullandığınız tüm algoritmalar tarafından kullanılmış oldu.

Bu durumda makine öğrenme algoritmalarının sızdırmaz bir değerlendirmesi çapraz doğrulamanın her katmanındaki verileri yeniden ölçeklendirmek için parametreleri hesaplar ve bu parametreleri her bir döngüde tutulan test katındaki verileri hazırlamak için kullanır.

Genelde sızıntı olmayan veri hazırlığı çapraz doğrulama döngüsünün her katında gerçekleşmelidir.

Bazı problemler için bu kısıtlamayı gevşetebilirsiniz. Örneğin, başka bir alan bilgisine sahip olduğunuz için verinizin dağıtımını güvenle tahmin edebiliyorsanız.

Genelde çapraz doğrulama katmanlarınızda herhangi gerekli veri hazırlama işlemlerinde (öznitelik seçimi, boyut indirgeme gibi.)tekrar hazırlama veya tekrar hesaplama yapmak iyi bir fikirdir.

R ve Python’daki Scikit-Learn gibi platformlar bunu otomatik yaparak bize yardımcı olur.

2. Doğrulama veri kümesini saklayın

Diğer belki de daha basit bir yaklaşım olan eğitim veri setini eğitim ve doğrulama kümelerine ayırmak ve doğrulama veri kümesini saklamaktır.

Bir kere modelleme işlemini bitirdiğinizde ve son modelinizi elde ettiğinizde modeli doğrulama veri kümesinde değerlendirin.

Bu kontrol size tahmininizin aşırı iyimser olup olmadığını ve sızıntıyı kontrol etmenizi sağlayabilir.

Aslında bu problemi çözmenin tek yolu bağımsız bir test veri kümesini tutup çalışma bitene kadar onu uzak tutmak ve onu son doğrulama için kullanmaktır.

( Dikran Marsupial in answer to the question “How can I help ensure testing data does not leak into training data?” on Cross Validated )

Veri sızıntısıyla baş etmek için 5 İpucu

  1. Gözlemin gerçekleştiği zaman yerine bir olgu veya gözlem hakkında öğrendiğiniz zamana odaklanarak tüm verileri kaldırın.
  2. Gürültü ekleyin.
  3. Sızdıran verileri kaldırın.
  4. Pipeline kullanın.
  5. Saklanmış veri kümesini kullanın.

Bu yazımızda Jason Brownlee tarafından machinelearningmastery.com sitesinde yayınlanan veri sızıntısı yazısını çevirdik ve veri sızıntısı hakkında bilgiler edindik. Yazının orjinaline buradan ulaşabilirsiniz.

Faydalı olması dileğiyle. Başarılar.

--

--