SVM ile çok-sınıflı sınıflandırma yapmaya çalışıyorum. Yaklaşık 8k özelliğim var ve yaklaşık 400'lük bir uzunluğa sahip y vektörüne sahibim. Zaten ikili Y vektörleri var, bu yüzden MultiLabelBinarizer()
'u kullanmadım ama Y veriimin ham formunu kullandığımda hala aynı şeyi veriyor.Scikit-Learn: Etiket değil x tüm eğitim örneklerinde bulunur
Bu kodu çalıştırıyorum: Bu öngörü kısmına geldiğinde bütün uydurma işleminden sonra
X = np.genfromtxt('data_X', delimiter=";")
Y = np.genfromtxt('data_y', delimiter=";")
training_X = X[:2600,:]
training_y = Y[:2600,:]
test_sample = X[2600:2601,:]
test_result = Y[2600:2601,:]
classif = OneVsRestClassifier(SVC(kernel='rbf'))
classif.fit(training_X, training_y)
print(classif.predict(test_sample))
print(test_result)
, bu Label not x is present in all training examples
(x 400 benim y vektör uzunluğu aralığında birkaç farklı sayılar olduğunu) söylüyor . Bundan sonra, her zaman sıfır vektörü olan ve uzunluğu 400 (y vektör uzunluğu) olan y vektörünü verir. Ben scikit-öğrenmede ve ayrıca makine öğreniminde yeniyim. Buradaki problemi çözemedim. Sorun nedir ve düzeltmek için ne yapmalıyım? Teşekkürler.
Merhaba, çok yararlı şeyler içeren bir cevap için teşekkürler. Y.sum (axis = 0) .all() 'ı denedim ve doğru döndü. Ayrıca, Y.mean (axis = 0) .max() 'ı denedim ve' 0.315981070258' döndürdü. Hala bir "clf.decision_function" uygulamalı mıyım? Bu konuda daha spesifik olabilir misiniz, nasıl uygulanmalı? Üzgünüm, bu konularda çok yeniyim, bu yüzden 'karar_fonksiyonu' ile ne yapılacağını anlayamadım. – malisit
Tüm sıfır tahminleri alıyorsanız ve orada 1'lerin olması gerektiğini biliyorsunuz, bunun yerine karar değerleri almayı deneyebilir ve her bir eşiğin üstünde olduğunda 1'i tahmin edebilirsiniz.Öngörülen etiketleriniz şöyle olurdu: '(decision_value> eşik) .astype (float)'. Eşik değeri 0'dan küçük olacaktır, çünkü 0, sınıflandırıcının kullandığı eşiktir ve hiç pozitif olmaz. Alternatif olarak, örnek başına en az bir pozitif etiket olduğunu biliyorsanız, en yüksek DV'ye sahip olan etiketi seçebilirsiniz (yine de negatif olacaktır). – Dthal
Teşekkürler! GitHub'da sağladığınız sezgi ve kod gerçekten yardımcı oldu. – malisit