Overfitting ve Underfitting

Ayşe Nur Türkaslan
Machine Learning Turkiye
3 min readJan 8, 2021

--

Ben Modelime : Bu kadar aptal olacağını bilseydim seni asla bu kadar akıllı yapmazdım. :D

Merhaba,

Bu yazımda Overfitting( Aşırı Öğrenme) ve Underfitting(Yetersiz/Eksik Öğrenme) kavramlarını incelemek ve arasındaki farkları detaylandırmak istiyorum.

İlk olarak bu kavramları tanımlamakla başlayalım. Daha sonra ikisi arasında bir kıyaslama ve çözümler kısmıyla noktalayım.

Görsel üzerinden ilerleyelim:

Overfitting, 3. görselde görüldüğü gibi belirli bir veri kümesine yakından veya tam olarak karşılık gelen yani uyan ve bu nedenle sonradan gelen ek verilere uymayı başaramayan ve gelecek gözlemleri güvenilir bir şekilde analiz etmede başarısız olan bir analiz üretimidir diyebilirim. Kısaca eğitim verilerini çok iyi modelleyen bir modeli ifade eder. Bir hedef işlevi öğrenirken daha fazla esnekliğe sahip olan, parametrik olmayan(non-parametric) ve doğrusal olmayan (non-linear) modellerde aşırı uyum yani “overfitting” olasılığı daha yüksektir.

Overfitting olan görsele yakın bir eğri elde edebiliriz baktığımızda bir yandan eğitim setine uymak için çok iyi bir iş çıkarıyor olarak görünebilir. Ama sizcede kıpır kıpır bir eğri gibi değil mi ? Ve bunun başka bir terimi “high variance” yani bu algoritmanın yüksek varyansa sahip olmasıdır. Bunu detaylandırmak gerekirse; mevcut verilerimize uyan ancak yukarıda bahsettiğim gibi ek, yeni veriler geldiğinde verileri tahmin etmek için iyi genelleme yapmayan bir hipotez fonksiyonunda kaynaklanır.

Underfitting, 1. görseli takip ederek yorumlayalım. İstatistiksel bir model verinin altyapısını yeterli bir şekilde yakalayamadığında, bir model çok basit olduğunda yani çok az özellik olduğunda ya da çok fazla düzenlendiğinde ortaya çıkar. Buda veriden öğrenmeden onu esnek kılar. Kısaca eğitim verilerini modelleyemeyen veya yeni verilerle genelleştirilemeyen bir modeli ifade eder bizim için.

İyi bir performans ölçütü göz önüne alındığında tespit edilmesi kolay olduğu için Underfitting(yetersiz öğrenme) tartışılmaz. Ve bunun ise bir başka terimi “high bias” tır. Yani detaylandıralım: hipotez fonksiyonumuzun formunun verilerimizin eğilimleriyle zayıf bir şekilde eşleşmesidir. Yukarıda bahsettiğim gibi bu durum çok basit veya çok az özellik kullanılmasından kaynaklanır.

Şimdi ise 2. görselimizi ele alalım, ve GOODNESS OF FIT :) diyelim..

Buraya baktığımızda bir modelin tahmin ettiği değerlerin gözlemlenen (doğru) değerlerle ne kadar yakından eşleştiğini görüyoruz. Oldukça iyi çalışır. Ve bunu başka bir terimle açıklayacak olursak “just right” deriz.

Peki .. Overfitting’ i nasıl tespit edebiliriz ?

Bunu ele almak için ilk olarak veri setimizi train(eğitim) ve test diye ayırabiliriz. Modelimiz eğitim(train) setinde, test setindekinden daha iyi sonuç veriyorsa … muhtemelen gereğinden fazla uyum sağlıyoruz.

Örneğin; modelimiz train setinde %99 accuracy(doğruluk), ancak test setinde yalnızca atıyorum %55 accuracy(doğruluk) gösterseydi büyük bir ne olurdu siz doldurun :))

Bir başka ipucu verecek olursam kıyaslama görecek çok basit bir modelle başlamak olabilir..

Ardından daha karmaşık algoritmaları denerken ek karmaşıklığın buna değip değmeyeceğini görmek için güzel bir referans noktasına sahip olacağız.

Son olarak Overfitting(Aşırı Öğrenme) nasıl önlenir ??

En popüler çözümleri sıralayacağım ve noktalayacağım :

1- Çapraz Doğrulama(Cross-validation)
2- Daha fazla veriyle eğitim
3- Özellikleri kaldır (Remove Features)
4- Erken durma(Early stopping)
5- Düzenleme(Regularization)
6- Birleştirme(Ensembling)

Umarım faydalı bir yazı olmuştur. Eğer bu yöntemlerden de bahsetmemi isterseniz yorum kısmına not düşebilirsiniz.

Çalışmalarınızda kolaylıklar diliyorum :))

--

--