Dengesiz veriler için ikili sınıflandırma modeli


14

Aşağıdaki özelliklere sahip bir veri kümem var:

  • 2.821 pozitif 193.176 numune ile eğitim veri seti
  • 673 pozitif 82.887 örnek ile Veri Kümesini test et
  • 10 özelliği vardır.

İkili bir sınıflandırma yapmak istiyorum (0 veya 1). Karşılaştığım sorun, verilerin çok dengesiz olması. Normalleştirme ve bazı özellik mühendisliği ile birlikte verileri ölçekledikten ve birkaç farklı algoritma kullandıktan sonra, elde edebileceğim en iyi sonuçlar şunlardır:

mean square error : 0.00804710026904
Confusion matrix : [[82214   667]
                   [    0     6]]

yani sadece 6 doğru pozitif vuruş. Bu lojistik regresyon kullanıyor. İşte bununla denedim çeşitli şeyler:

  • RandomForest, DecisionTree, SVM gibi farklı algoritmalar
  • İşlevi çağırmak için parametre değerini değiştirme
  • Bazı sezgiye dayalı özellik mühendisliği, bileşik özellikleri içerir

Şimdi, sorularım:

  1. Pozitif isabet sayısını artırmak için ne yapabilirim?
  2. Böyle bir durumda fazlalık olup olmadığını nasıl belirleyebiliriz? (Çizmeyi denedim vs.)
  3. Belki bu noktada sahip olabileceğim en uygun uyum varsa ne sonuca varabiliriz? (673 üzerinden sadece 6 sonuç dikkate alındığında üzücü görünüyor)
  4. Pozitif örnek örneklerinin daha fazla tartmasını sağlamanın bir yolu var mı, böylece desen tanıma daha fazla isabete yol açar.
  5. Hangi grafik grafikler, aykırı değerlerin veya hangi modelin en uygun olacağını sezgisinin tespit edilmesine yardımcı olabilir?

Scytit-learn kütüphanesini Python ile kullanıyorum ve tüm uygulamalar kütüphane fonksiyonudur.

Düzenle:

İşte birkaç başka algoritmaya sahip sonuçlar:

Rastgele Orman Sınıflandırıcısı (n_estimators = 100)

[[82211   667]
[    3     6]]

Karar ağaçları:

[[78611   635]
[ 3603    38]]

Yanıtlar:


11
  1. İkili sınıflandırma yaptığınızdan, sınıflandırma eşiğini ayarlamayı denediniz mi? Algoritmanız oldukça duyarsız göründüğünden, onu indirmeyi ve bir iyileşme olup olmadığını kontrol etmeyi deneyeceğim.

  2. Modelinizin aşırı uyup uymadığını belirlemek için her zaman Öğrenme Eğrileri'ni veya Eğitim ve Doğrulama hatasına karşılık bir model parametresinin grafiğini kullanabilirsiniz . Durumunuzda uygun görünüyor, ama bu sadece sezgi.

  3. Nihayetinde veri kümenize ve denediğiniz farklı modellere bağlıdır. Bu noktada ve daha fazla test yapılmadan kesin bir cevap olamaz.

  4. Bu konuda uzman olduğunu iddia etmeden, takip edebileceğiniz birkaç farklı teknik var (ipucu: google'da ilk bağlantı ), ancak bence ilk önce maliyet işlevinizi dikkatlice seçtiğinizden emin olmalısınız, böylece aslında arıyoruz.

  5. Örüntü sezgisiyle ne demek istediğinizden emin değil misiniz, ayrıntılandırabilir misiniz?

Bu arada, denediğiniz farklı algoritmalarla sonuçlarınız nelerdi? Farklı mıydılar?


1
Lojistik regresyon eşiğini ayarlamak hile yaptı. Kaynakların listesi için teşekkürler.
tejaskhot

Birisi lojistik regresyon eşiğini nasıl ayarladığınıza ilişkin bir kod pasajı yapıştırabilir mi?
Blenz

0

Veriler çok eğik olduğu için, böyle bir durumda, aşırı örnekleme verisinden sonra model eğitimini de deneyebiliriz.

SMOTE ve ADASYN , verileri aşırı örneklemek için kullanabileceğimiz tekniklerden bazılarıdı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.