0

'da doğruluk oranını azaltır. Bazı veriler hakkında bilgi edinmek için sklearn kullanıyorum. Bu bir ikili sınıflandırma görevidir ve bir RBF çekirdeği kullanıyorum. Veri setim oldukça dengesiz (80:20) ve sadece 120 örnek kullanıyorum, 10ish özellikleriyle (birkaç tane daha az deney yapıyordum). class_weight="auto"'u ayarladığımdan, çapraz doğrulanmış (10 kat) bir gridsearch'dan hesapladığım doğruluk oranı önemli ölçüde düştü. Niye ya??Veri setini dengelemek için sınıf ağırlığını kullanmak, RBF SVM

Farkı göstermek için birkaç doğrulama doğruluğu ısı haritası ekleyeceğim. This is before I changed class weight to auto

This is with class weight set to auto

NOT: classweight otomatik olarak değiştirildi önce üst ısı haritası olduğunu.

cevap

0

Kesinlik, dengesiz veri kümesiyle uğraşırken kullanılacak en iyi metrik değildir. 99 pozitif örnek ve 1 negatif örneğiniz olduğunu varsayalım ve eğer tüm çıktıların pozitif olacağını tahmin ederseniz, yine de sadece% 99'luk bir doğruluk elde edeceksiniz, oysa tek olumsuz örneği yanlış sınıflandırdınız. İlk durumda yüksek doğruluk elde etmiş olabilirsiniz, çünkü tahminleriniz çok sayıda numuneye sahip olan tarafta olacaktır.

Sınıf ağırlığı = auto yaptığınızda, dengesizliği dikkate alır ve tahminleriniz merkeze doğru hareket etmiş olabilir, tahminlerin histogramlarını çizerek çapraz kontrol edebilirsiniz.

Benim önerim, performans metriği olarak doğruluk kullanma, F1 Score veya AUC gibi bir şey kullanmayın.

+0

Gerçek pozitif oranı kontrol etmenin yanı sıra, tam performansı analiz etmenin yanı sıra sınıfın ağırlığını değiştirmeden önce (en iyisi) sınıftaki azınlık grubundakilerin 5 veya 6'sını aldım. Ancak değiştirdikten sonra birden fazla almak için – bidby

İlgili konular