Scikit SVM'nin çok sınıflı sınıflandırmadaki çıktısı her zaman aynı etiketi verir


10

Şu anda Scikit aşağıdaki kodu ile öğrenmek kullanıyorum:

clf = svm.SVC(C=1.0, tol=1e-10, cache_size=600, kernel='rbf', gamma=0.0, 
              class_weight='auto')

ve sonra 7 farklı etikete sahip bir veri seti için uygunluk ve tahmin yapın. Tuhaf bir çıktı aldım. Doğrulama setinde öngörülen etiketi hangi çapraz doğrulama tekniğini kullanırsam kullanalım, daima etiket 7 olacaktır.

Tam varsayılan bir ( svm.SVC()) dahil olmak üzere diğer bazı parametreleri deniyorum ama kullandığım çekirdek yöntemi rbfyerine olduğu gibi polyya linearda gerçekten işe yaramazken polyve gerçekten işe yaramazsa linear.

Ayrıca, doğrulama verileri yerine tren verisi üzerinde önceden tahmin yaptım ve mükemmel bir şekilde uyuyor.

Bu tür bir sorunu daha önce gören ve burada neler olduğunu bilen var mı?

Sınıf dağılımımı asla ayrıntılı olarak görmüyorum ama% 30 civarında olması gerektiğini biliyorum 7,% 14'ü 4.

Manuel 1'e karşı dinlenme uygulamasını bile deniyorum ve hala yardımcı olmuyor.


Verilerinizin her bir sınıfa giren oranları nedir?
gung - Monica'yı eski

Verilerimde gerçekten daha fazla "7" var ama çok fazla değil. Bunların yaklaşık% 30'u 7'dir. @Gung
Tamaki Sakura

Yanıtlar:


10

Cγ

scikit-learn sınırlı hiperparametre arama olanaklarına sahiptir, ancak Optunity gibi bir ayar kitaplığıyla birlikte kullanabilirsiniz . Scikit-learn SVC'yi Optunity ile ayarlama hakkında bir örnek burada mevcuttur .

Feragatname: Optunity'nin baş geliştiricisiyim.


Aslında manüel olarak 0'dan 4'e 10'luk bir güç olan her C ve gamma kombinasyonunu denedim ama hepsi bana tam 7 veriyor. Scikit öğrenimini doğru şekilde derlediğimde bile şüphe etmeye başladım.
Tamaki Sakura

8

Sorun parametre testi olduğu ortaya çıkıyor. gamma0.0 (1 / n_feature) ve 1 arasında olduğunda denemedim. Verilerim gammaetrafında bir şey dönmelidir1e-8


4
γ
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.