SVM ile dengesiz çok sınıflı veri kümesini ele almanın en iyi yolu


9

Ben dengesiz veri SVMs ile bir tahmin modeli oluşturmak için çalışıyorum. Etiketlerim / çıktımın pozitif, nötr ve negatif olmak üzere üç sınıfı var. Olumlu örneğin verilerimin yaklaşık% 10-20'sini, nötr yaklaşık% 50-60'ını ve negatif yaklaşık% 30-40'ını oluşturduğunu söyleyebilirim. Sınıflar arasında yanlış tahminlerle ilişkili maliyet aynı olmadığı için sınıfları dengelemeye çalışıyorum. Bir yöntem, eğitim verilerini yeniden örneklemek ve orijinalinden daha büyük olan eşit olarak dengeli bir veri kümesi oluşturmaktı. İlginç bir şekilde, bunu yaptığımda, diğer sınıf için daha iyi tahminler almaya eğilimliyim (örneğin verileri dengelediğimde, pozitif sınıf için örnek sayısını arttırdım, ancak örnek tahminlerden negatif sınıf daha iyi oldu). Herkes bunun neden olduğunu genel olarak açıklayabilir mi? Negatif sınıf için örnek sayısını arttırırsam, örnek tahminlerden (örn. Daha iyi tahminler) pozitif sınıf için benzer bir şey alır mıyım?

Ayrıca, farklı sınıflandırmalara farklı maliyetler yükleyerek veya LibSVM'deki sınıf ağırlıklarını kullanarak (dengesizleri nasıl doğru şekilde seçeceğimi / ayarlayacağımı bilmiyorum) dengesiz verileri nasıl ele alabileceğime dair diğer düşüncelere çok açık.

Yanıtlar:


6

Her sınıfın desenleri için marj boşluğu değişkenleri için farklı cezalara sahip olmak, verileri yeniden örneklemekten daha iyi bir yaklaşımdır. Yine de asimtotik olarak yeniden örneklemeye eşdeğerdir, ancak ayrık olmaktan ziyade uygulanması ve süreklidir, bu yüzden daha fazla kontrole sahipsiniz.

Bununla birlikte, ağırlıkları seçmek kolay değildir. Prensip olarak, yanlış sınıflandırma maliyetlerini ve eğitim arasındaki farkları dikkate alan teorik bir ağırlıklandırma çalıştırabilirsiniz. Yapılacak en iyi şey, çapraz onaylama yoluyla kaybı en aza indirerek (yanlış sınıflandırma maliyetlerini dikkate alarak) her sınıf için cezaları / ağırlıkları seçmektir.


Bunun nasıl yapılacağına dair otomatik bir yol var mı veya bu işlevselliğe sahip öğrenciler var mı?
Vam

Genellikle belirli bir ceza grubunun kaybını değerlendirmek için bir matlab işlevi yazıyorum ve daha sonra Nelder-Mead simpleks algoritmasını kullanarak bunu en aza indiriyorum. Bu yerleşik kütüphaneleri bilmiyorum.
Dikran Marsupial

@DikranMarsupial İki sınıflı bir problemde iki kenar boşluğu değişkeninin ızgara araması, tek taraflı algoritma ile yaptığınızla eşdeğer midir?
Spacey

@Tarantula evet, kesin optimizasyon yöntemi nispeten önemsizdir, kilit nokta, uygulamanızın amaçları için gerçekten ilgilendiğiniz çapraz doğrulama istatistiğini optimize ettiğinizden emin olmaktır (yani, operasyonel kullanımda karşılaşılan aynı sınıf frekansları ve biliniyorsa yanlış sınıflandırma maliyetlerini dikkate alarak).
Dikran Marsupial
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.