Sınıf dengesizliği probleminin kök nedeni nedir?


30

Son zamanlarda makine / istatistik öğreniminde "sınıf dengesizliği sorunu" hakkında çok fazla düşündüm ve neler olup bittiğini anlamadığım bir duyguyu daha da derinleştiriyorum.

İlk önce, terimlerimi tanımlamama (veya tanımlamaya çalışmama) izin verin:

Sınıf dengesizliği bir sorun makinesi / istatistiksel öğrenme 1 sınıflara 0 sınıfların oranı çok eğik olduğu zaman, bazı ikili sınıflandırma (*) algoritmaları iyi performans bu gözlemdir.

Yüzlük olsaydı Yani, yukarıdaki örneğin, 0 her için sınıfları 1 sınıfında, ben sınıf dengesizlik olduğunu söyleyebilirim 1 ile 100 veya 1% .

Gördüğüm problemin çoğu ifadesi, yeterli nitelik olarak ne düşündüğümden (hangi modellerin mücadele ettiği, ne dengesizlik olduğu) eksiktir ve bu benim kafamın bir kaynağıdır.

Makine / istatistiksel öğrenmedeki standart metinlerin araştırılması az miktarda ortaya çıkıyor:

  • İstatistiksel Eğilme Öğeleri ve İstatistiksel Öğrenmeye Giriş , endekste "sınıf dengesizliği" içermemektedir.
  • Tahmini Veriler İçin Makine Öğrenmesi Analytics, aynı zamanda dizinde "sınıf dengesizliği" içermiyor.

  • Murphy Machine Learning: A Olasılık Perspektif yapar endeksinde * "sınıfı dengesizliği ihtiva referans aşağıdaki kabartan yorum bulunamadı SVM en konulu bir bölüme etmektir.:

    Tüm bu zorlukların ve bunları düzeltmek için önerilen buluşsal bolluğun temelde ortaya çıktığını hatırlamakta fayda var, çünkü SVM'ler olasılıkları kullanarak belirsizliği modellemediğinden, çıktı puanları sınıflar arasında karşılaştırılamaz.

Bu yorum, sezgilerime ve deneyimlerime göre artıyor: önceki işimde, lojistik gerilemelere ve gradyanı yükseltilmiş ağaç modellerine (binom log log olasılığını en aza indirmek için) dengesiz verilere ( % 1% sınıf dengesizliği sırasına göre) rutin olarak uyardık. performansta bariz sorunlar.

Sınıflandırma ağacı temelli modellerin (kendileri ve rastgele ormanlar) sınıf dengesizliği probleminden de muzdarip olduğunu okudum (bir yerlerde) . Bu, suları biraz karışır, ağaçlar bir anlamda olasılıkları geri getirir: ağacın her bir terminal düğümündeki hedef sınıf için oylama kaydı.

Öyleyse sarmak için, gerçekten peşimde olan şey (eğer varsa) sınıf dengesizliği sorununa yol açan güçlerin kavramsal olarak anlaşılmasıdır .

  • Kötü seçilmiş algoritmalar ve tembel varsayılan sınıflandırma eşikleriyle kendimize yaptığımız bir şey mi?
  • Her zaman uygun puanlama kriterlerini optimize eden olasılık modellerine uyursak ortadan kaybolur mu? Farklı bir şekilde söylendiği gibi, sebep basitçe zayıf bir kayıp fonksiyonudur, yani bir modelin zorlu sınıflandırma kurallarına ve genel doğruluğa dayalı tahmin gücünü değerlendirmek mi?
  • Öyleyse, uygun puanlama kurallarını optimize etmeyen modeller sonra işe yaramaz (veya en azından daha az faydalı) mı?

(*) Sınıflandırmaya göre , ikili cevap verisine uygun herhangi bir istatistiksel modeli kastediyorum. Ben am değil yine de o değil amacım, tek sınıf veya diğer sert bir atama olduğunu varsayarsak.


1
Açıkçası bir sorun, öğrenci her bir sınıfın kaybını aynı şekilde cezalandırdığında ortaya çıkabilir. Teorik olarak aynı sınıfın yapabileceği her şeyi iade etmek, toplam kaybı en aza indirir.
Firebug

1
Listeme eklemek unuttum poor choice of loss function. Peki, bunun kayıp puanlama fonksiyonları olarak uygun puanlama kuralları için bile doğru olduğunu düşünüyor musunuz?
Matthew Drury

Ben de öyle düşünüyorum. Genel olarak azınlık sınıfı daha büyük ilgi çekerken, daha büyük sınıfın kaybını en aza indirmenin sadece bütün sorunun kaybını en aza indirdiği bir problem formüle edebileceğimizi tahmin ediyorum.
Firebug

3
Sorunun duygularına katılıyorum. Çalışan bir hipotezim vardı (reddetmekten mutlu olsa da) kendi başına sınıf dengesizliği sorunu olmadığını, sadece test verilerindeki başarıyı ölçmek için kullanacağımızı temsil etmeyen kayıp fonksiyonları ile eğittiğimizi söyledim. Neredeyse standart bir uygulama olduğu için buna hata demek zor: Örn: AUC veya F1 puanlarını doğrudan optimize etmek standart değil, ancak sınıf dengesizliği sorunları için ortak başarı ölçütleri. Yani belki de bu sınıf dengesizliği sorunu?
DavidR

9
Sınıf dengesizliği probleminin nedeni, doğruluğu bir kayıp fonksiyonu olarak kullanma sözleşmesidir. sınıf dengesizliği, birkaç strateji kullanarak ele alınabilecek bir problem özelliğidir (örneğin, nadir görülen bir hastalık teşhisi). Kayıp işlevini hesaplarken sınıf boyutuna orantılı bir sınıf ağırlığı tersi bunlardan biridir. Bunun dışında, bir kayıp fonksiyonu olarak AUC iyi bir fikirdir çünkü gerçek-pozitif ile yanlış-pozitif arasında ayrım yapar. Bu nedenle sınıf dengesizliği probleminin ana konusu kayıp fonksiyonudur. Yine de cevap vermeye cesaret edemediğim harika bir soru.
Nikolas Rieble

Yanıtlar:


4

Makine Öğrenimi Ansiklopedisi'nden bir giriş ( https://cling.csd.uwo.ca/papers/cost_sensitive.pdf ), "sınıf dengesizliği sorunu" olarak adlandırılan şeyin üç ayrı sorun olarak daha iyi anlaşıldığını faydalı bir şekilde açıklar:

 (1) assuming that an accuracy metric is appropriate when it is not

 (2) assuming that the test distribution matches the training 
     distribution when it does not

 (3) assuming that you have enough minority class data when you do not

Yazarlar şöyle açıklar:

Sınıf dengesiz veri kümeleri, verilerin sınıf dağılımlarının oldukça dengesiz olduğu birçok gerçek dünya uygulamasında oluşur. Yine, genelliği kaybetmeden azınlık veya nadir sınıfın pozitif sınıf olduğunu ve çoğunluk sınıfının negatif sınıf olduğunu varsayıyoruz. Genellikle, azınlık sınıfı veri setinin% 1'i gibi çok küçüktür. Veri setine en geleneksel (maliyete duyarlı olmayan) sınıflandırıcıları uygularsak, her şeyi negatif (çoğunluk sınıfı) olarak tahmin etmeleri olasıdır. Bu, çoğunlukla dengesiz veri kümelerinden öğrenmede bir sorun olarak görülüyordu.

Ancak, (Provost, 2000) 'in işaret ettiği gibi, geleneksel maliyet-duyarsız sınıflandırıcılarda genellikle iki temel varsayım yapılmaktadır. Birincisi, sınıflandırıcıların hedefinin doğruluğu en üst düzeye çıkarmak (ya da hata oranını en aza indirmektir); İkincisi, eğitim ve test veri setlerinin sınıf dağılımının aynı olmasıdır. Bu iki varsayım altında, oldukça dengesiz bir veri kümesi için her şeyi negatif olarak tahmin etmek çoğu zaman yapılacak doğru şeydir. (Drummond ve Holte, 2005) bu durumda bu basit sınıflandırıcıdan daha iyi performans göstermenin genellikle çok zor olduğunu göstermektedir.

Bu nedenle, dengesiz sınıf sorunu yalnızca yukarıdaki iki varsayımdan biri veya her ikisi de doğru olmadığında anlam kazanır; yani, farklı hata türlerinin maliyeti (ikili sınıflandırmada yanlış pozitif ve yanlış negatif) aynı değilse veya test verilerindeki sınıf dağılımı eğitim verilerinden farklıysa. İlk vaka, maliyete duyarlı meta-öğrenmede yöntemleri kullanarak etkin bir şekilde ele alınabilir.

Yanlış sınıflandırma maliyetinin eşit olmadığı durumlarda, azınlık (pozitif) bir örneği çoğunluk (negatif) sınıfına, genellikle azınlık sınıfına büyük bir örnekte sınıflandırmak daha pahalıdır (aksi halde her şeyi tahmin etmek daha makul olacaktır. negatif). Yani, FN> FP. Bu nedenle, FN ve FP değerleri göz önüne alındığında, sınıf dengesizliği problemini çözmek için çeşitli maliyete duyarlı meta-öğrenme yöntemleri kullanılabilir ve kullanılmıştır (Ling ve Li, 1998; Japkowicz ve Stephen, 2002). FN ve FP değerleri açıkça bilinmiyorsa, FN ve FP, p (-): p (+) ile orantılı olarak atanabilir (Japkowicz ve Stephen, 2002).

Eğitim ve test veri kümelerinin sınıf dağılımlarının farklı olması durumunda (örneğin, eğitim verileri oldukça dengesiz ancak test verileri daha dengeliyse), açık bir yaklaşım, eğitim verilerini sınıf dağılımı ile aynı olacak şekilde örneklemektir. Test verileri (azınlık sınıfını aşarak ve / veya çoğunluk sınıfını örnekleyerek) (Provost, 2000).

Bazen, azınlık sınıfının örnek sayısının, sınıflandırıcıların yeterince öğrenmesi için çok küçük olduğuna dikkat edin. Bu, dengesiz veri kümelerinden farklı olarak yetersiz (küçük) eğitim verilerinin sorunudur.

Dolayısıyla, Murphy'nin belirttiği gibi, bu üç hatadan kaçınmanız koşuluyla, dengesiz sınıfları kullanma konusunda doğal olarak sorunlu bir şey yoktur. Posterior olasılıklar veren modeller, hatadan (1) kaçınmayı, SVM gibi ayırt edici modellerden daha kolay hale getirir, çünkü sonuçları karar vermeden ayırmanızı sağlar. ( Bu son noktanın daha fazla tartışılması için Piskoposun 1.5.4 Çıkarım ve Karar bölümüne bakınız .)

Umarım yardımcı olur.


1
Benzer bir şey gönderecektim. küçük bir yorum - daha büyük bir sınıfı örneklemenin delice olduğunu düşünüyorum. Bu verilerinizi atmak ve kesinlikle daha iyi bir sonuç vermeyecektir. Ayrılma çıkarımı ve sınıflandırma kavramını seviyorum. çıkarım kısmı dengesizlikten etkilenmez, ancak karar verme (sınıflandırma) büyük ölçüde etkilenebilir.
Olasılık

@probabilityislogic (ve Bill Vander Lugt): Bu metinde tartışılmayan başka bir olası sorun var: ayrımcı bir Ansatz'ın yeterli olup olmadığı. Bir sınıfın daha uygun olacağı ayrımcı bir model için yetersiz kalmak da “sınıf dengesizliği sorunlarına” yol açabilir.
cbeleites

8

Bir kayıp fonksiyonunu en aza indirmek için optimizasyon içeren herhangi bir şey, eğer yeterince dışbükeyse, bu kayıp fonksiyonunun global bir asgari değeri olan bir çözüm verecektir. Derin ağlar tüm dışbükey olmadığından, ancak pratikte makul bir asgariye sahip olduklarından, yeterince öğrenme oranı vb. Olduğundan 'yeterince dışbükey' diyorum.

Bu nedenle, bu tür modellerin davranışı, kayıp fonksiyonuna ne koyduğumuzla tanımlanır.

F

yf=f(x)

FGbFFbG

yg={Bif f(x)>bAotherwise

bG

FGG

Şimdi diyelim ki bir kayıp fonksiyonumuz var:

L=1Nn=1NIyig(xi)

Ic1c0yiig(xi)i

990.9=89.1990.1=9.910.9=0.910.1=0.1

L=(9.9+0.1)/100=0.1

G1/100

L=0.01

Her sınıfa eşit geri çağırma ve hassasiyet atamak gibi eşiği ayarlarken, kaybın on katıdır.

GG

G

Alternatif olarak, her B örneğini 99 kez klonlayarak veri setini değiştirebiliriz; bu, kayıp fonksiyonunun artık daha önceki ideal eşiğimizden farklı bir konumda minimumda kalmamasına neden olur.


4
Lütfen cevabınızı sorulan sorulara biraz daha açık hale getirmeyi deneyebilir misiniz? Açıkça düşünceli olsa da, çoğunlukla bir cevaptan çok yorum olarak okur. Örneğin, sadece yorum amacıyla, tanımlanan kayıp fonksiyonu gibi uygunsuz bir puanlama kuralının kullanılmasının temelde yanlış olduğu ve bu nedenle sonraki analizin geçersiz olduğu söylenebilir.
usεr11852 Reinstate Monic diyor

G

2
FPTPk

FFGFFG

3
Bu, (1) maksimize etmeye çalıştığımız KPI’nın doğruluk olduğunu ve (2) sınıflandırma modelinin değerlendirilmesi için uygun bir KPI olduğunu ima eder. Değil.
S. Kolassa - Monica'yı yeniden kurun

0

Bir sınıf sınıflandırıcının, her bir sınıfa diğer tüm sınıflardan bağımsız olarak baktıkları ve sadece modellenmeyerek “sınıf olmayan” ile başa çıkabildikleri için bir dengesizlik sorunu olmadığını unutmayın. (Tabii ki çok küçük örneklem büyüklüğü ile ilgili bir problemi olabilir).

Birinci sınıf sınıflandırıcılar tarafından daha uygun şekilde modellenebilecek birçok problem, ayrımcı yaklaşımlar kullanıldığında “sınıf dengesizliği sorunları” nın bir belirti olduğu, kötü tanımlanmış modellere yol açmaktadır.

Örnek olarak, satılabilecek veya satılmayacak bazı ürünleri düşünün. Böyle bir durum genellikle ile karakterize edilir

class         | "good"                        | "not good"
--------------+-------------------------------+------------------------------------------
sample size   | large                         | small
              |                               |
feature space | single, well-delimited region | many possibilities of *something* wrong 
              |                               | (possibly well-defined sub-groups of
              |                               |    particular fault reasons/mechanisms) 
              |                               | => not a well defined region, 
              |                               | spread over large parts of feature space
              |                               |
future cases  | can be expected to end up     | may show up *anywhere* 
              | inside modeled region         | (except in good region)

Bu nedenle, "iyi" sınıfı iyi tanımlanırken, "iyi olmayan" sınıfı kötü tanımlanmıştır. Eğer böyle bir durum ayırt edici bir sınıflandırıcı tarafından modellenirse, iki katlı bir "dengesizlik problemi" var: sadece "iyi olmayan" bir sınıf küçük örneklem büyüklüğüne sahip değil, aynı zamanda daha düşük örnek yoğunluğuna da sahip özellik alanının daha büyük kısmı).

Bu tür "sınıf dengesizliği sorunu", görevin iyi tanımlanmış "iyi" sınıfın bir sınıf tanıma olarak modellenmesiyle ortadan kalkacaktır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.