如何使用“多类”SVM计算SFS(顺序特征选择)?

时间:2016-04-14 14:01:35

标签: matlab svm

我可以使用sequentialfs函数来计算具有两级SVM的SFS。 (表示二进制输出[0 1])

下面是我的代码:

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

我无法让它成功运作。

1 个答案:

答案 0 :(得分:0)

我认为您的问题是svmtrain仅适用于二进制分类。如果您要包含y不是二进制文件时收到的错误消息,那么我们就知道了。

Matlab中有多种类的SVM实现,包括:

来自文件交换的

(1)This显然使用类似于Mathworks本身的svmtrain,(2)and this的语法,它使用稍微不同的结构。

我还没有亲自使用它,但我会从(1)开始,因为语法与svmtrain相同,但是它可能缺少您使用的内核和边界选项。祝你好运!