Imbalanced Classification Problems

Ayşe Nur Türkaslan
Data Runner
Published in
3 min readNov 11, 2020

--

(Dengesiz Sınıflandırma Problemleri)

Merhaba, bu yazımda sizlere dengesiz sınıflandırma (imbalanced classes) problemlerinin zorluklarından bahsedeceğim.

Sınıflandırma (Classification) için kullanılan makine öğrenme(Machine Learning) algoritmalarının çoğu, her sınıf için eşit sayıda örnek varsayımı etrafında tasarlandığından, dengesiz sınıflandırma problemleri tahmine dayalı modelleme için bir zorluk oluşturmaktadır. Çünkü dengesiz sınıflar (imbalanced classes) her sınıfta orantısız gözlem oranı bulundurur.

Bu, özellikle azınlık sınıfı(minority class) için kötü tahmin performansına sahip modellerle sonuçlanır. Bu bizim için büyük bir sorundur. Çünkü tipik olarak azınlık sınıfı (minority class) daha önemlidir. Bu nedenle sorun, minority class için classification(sınıflandırma) hatalarına karşı çoğunluk sınıfından (majority class) daha hassastır.

O halde minority ve majority class kavramları nedir inceleyelim:

minority class: Örneklerimizin yarısından azı bu sınıfa aittir. Genellikle olumlu ve anormal bir durumdur

majority class: Örneklerimizin yarısından fazlası bu sınıfa aittir. Genellikle olumsuz veya normal bir durumdur

Hafif bir dengesizlik varmış gibi sınıflandırma(classification) sorunu biraz çarpıklık fark edebiliriz. Classification problemi belirli bir eğitim veri seti(training dataset) için bir sınıfta yüzlerce veya binlerce örnek, başka bir sınıfta ise onlarca örnek olabileceğinden ciddi bir classes imbalance(sınıf dengesizliğine) sahip olabilir.

Dengesizlik durumunu iki kategoride inceleyelim:

slight imbalance: Örneklerin dağılımının train datasında küçük bir miktarda eşit olmadığı durumlarda “hafif dengesizlik” kavramı ile karşılaşmaktayız.

severe imbalance: Örneklerin dağılımının train datasında büyük miktarda düzensiz olduğu durumlarda “şiddetli dengesizlik” kavramı ile karşılaşmaktayız.

Şimdi ise sınıflandırma(classification) problemlerinde modelimizi nasıl değerlendireceğiz bu konuyu ele alalım:

Tahmin doğruluğu(prediction accuracy), uygun olmayan ve dengesiz sınıflandırma görevlerinde kullanıldığında potansiyel olarak tehlikeli bir şekilde yanıltıcı olmasına rağmen sınıflandırma problemleri için kullandığımız en yaygın ölçüttür.

Bunun nedeni, datanın yüzde 98'i negatif sınıfa aitse, her zaman negatif sınıfı tahmin ederek, iyi görünen ancak pratikte hiçbir beceriye sahip olmayan bir puan elde ederek ortalama yüzde 98 accuracy elde edebiliriz.

Bunun yerine performans metriklerimizi kullansak daha iyi olur:

Popüler alternatifler, modelin performansının yukarıda bahsettiğim minority sınıf yani pozitif ve anormal duruma odaklanarak dikkate almamızı sağlayan “recall ” puanlarıdır.

confusion matrix: doğru tahminlerimizi ve yanlış tahminlerimizi gösteren tablodur.

precision: doğru tahmin edilen pozitif örnek sayısının tahmin edilen toplam pozitif örnek sayısına bölünmesiyle elde edilen oranı hesaplar. Düşük precision çok sayıda false positive olduğunu gösterir

recall: doğru tahmin edilen pozitif örneklerin test verilerindeki pozitif örneklerin sayısına bölünmesiyle elde edilen orandır. Düşük recall yüksek sayıda false nagative olduğunu gösterir.

F1 score: Bir modelin performansı , precision ve recall’in ağırlıklı ortalamasından elde ettiğimiz sonuçtur bu şekilde özetlenebilir. F1 score’u maxsimize etmek aynı anda hem precision’u hem de recall’i üst düzeye çıkaracaktır.

Bir görselle yazdıklarımı desteklemek ve daha kalıcı hale getirmek istedim.

confusion matrix

Bu konuyu sindirmenize yardımcı olacak kod parçalarını ve imbalanced data üzerinde uygulayabileceğiniz 5 farklı yöntem içeren, benim de bu konuya çalışırken üzerinden ilerlediğim notebook’uma buradan ulaşabilirsiniz.

Umarım faydalı olmuştur. Bir sonraki yazımda görüşmek üzere, sağlıkla kalın :)

--

--