为了更好地理解支持向量机如何在MATLAB中工作的概念,我建议你简要阅读THIS VERY IMPORTANT LINK。
我正在尝试应用相同的概念,但我有不同的训练集和测试集。
更精确:
我的列车指的是 C2res {1} ,其中最后一个等于:
C2res{1} =
1.0e-05 *
Columns 1 through 10
0.5341 0.5822 0.6185 0.7555 0.7369 0.7131 0.5985 0.6483 0.5668 0.6620
Columns 11 through 12
0.6523 0.6097
我的测试集指的是 C2res {2} ,其中最后一个具有相同形式的C2res {1},但值不同......
然后,我使用了上述链接中使用的概念:
XTrain = [C2res{1}];
XTest = [C2res{2}];
label = [ones(size(C2res{1},2),1)];
SVMStruct = svmtrain(XTrain , label, 'kernel_function', 'linear');
Group = svmclassify(SVMStruct, XTest);
但遗憾的是我总是遇到如下错误:
Error using svmtrain (line 335)
Y must contain exactly two groups for method 'SMO'.
这就是为什么我需要你的帮助。
非常感谢任何帮助!
答案 0 :(得分:2)
您是否尝试使用两个类来实施分类培训?您的label = [ones(size(C2res{1},2),1)];
只包含一个值,而且似乎需要两个值(两个类别)。我认为这就是出错的原因。
如果您要应用单类SVM,请尝试添加此选项(有关该选项的更多参考,请参阅this page):
SVMStruct = svmtrain(XTrain , label,'-t 0 -s 2');