2016-04-14 6 views
0

私はsequentialfs関数を使って2クラスSVMでSFSを計算することができます。以下 (バイナリ出力を意味する[0 1])"multiple class" SVMを使ったSFS(Sequential Feature Selection)の計算方法

は私のコードである:

%% 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 

私の問題は、yがバイナリでない場合SFSを計算する方法です。

正常に動作しません。

答えて

0

あなたの問題は、svmtrainがバイナリ分類のためだけであると思います。 yがバイナリでないときに表示されるエラーメッセージを含めると、わかります。

含むMATLABで多クラスSVMのいくつかの実装があります

(2)and thisがわずかに異なるを使用Mathworks社自体から、明らかにsvmtrainのような構文を使用するファイル交換から(1)This構造。

私は個人的に使っていませんが、構文はsvmtrainと同じですから(1)で始まりますが、使用するカーネルと境界のオプションが不足している可能性があります。がんばろう!

+0

今私は "fitcecoc"であるsvmの機能を交換しましたが、コンパイルされた回答は性能が良くなく、答えが正しいとは確信できません。 –

関連する問題