2016-04-14 26 views
0

SFS'yi iki sınıf SVM ile hesaplamak için sequentialfs işlevini kullanabilirim.SFS (Sıralı özellik seçimi), "çoklu sınıf" SVM ile hesaplanır SVM?

%% x=features, y=binary response. 
c = cvpartition(y,'k',10); 
opts = statset('display','iter'); [fs,history] = sequentialfs(fun,x,y,'cv',c,'options',opts) 

function err = SVM_class_fun(xTrain, yTrain, xTest, yTest) 
model = svmtrain(xTrain,yTrain,'Kernel_Function','polynomial','polyorder',2, 'boxconstraint', 1); 
err = sum(svmclassify(model, xTest) ~= yTest); end 

Sorunum y ikili olmadığında SFS hesaplamak için yapılması gerekenler:

aşağıda benim kodudur (ikili çıkışı [0 1] anlamına gelir).

Başarıyla çalışamıyorum.

cevap

0

Sorununuzun, svmtrain'un yalnızca ikili sınıflandırma için olduğunu düşünüyorum. y ikili olmadığında aldığınız hata iletisini eklerseniz, o zaman biliyorduk. Görünüşe göre svmtrain benzer bir söz dizimi kullanılır dosya alışverişi gelen

(1) This, (2), Mathwork kendisinden and this biraz farklı bir kullanır:

dahil Matlab çok sınıf SVM çeşitli uygulamaları vardır yapısı.

Kişisel olarak kullanmıyorum, ancak sözdizimi svmtrain ile aynı olduğundan (1) ile başlayacağım, ancak kullandığınız çekirdek ve sınırlama seçeneklerinden yoksundur. İyi şanslar!

+0

şimdi "fitcecoc" olan svm işlevini değiştirdim, ancak derlenmiş yanıt iyi bir performans değildi ve yanıtın doğru olduğundan emin olamıyorum, –

İlgili konular