【发布时间】:2017-11-06 04:07:29
【问题描述】:
我尝试了以下代码
data = [27 9 0
11.6723281 28.93422177 0
25 9 0
23 8 0
5.896096039 23.97745722 1
21 6 0
21.16823369 5.292058423 0
4.242640687 13.43502884 1
22 6 0];
Attributes = data(:,1:2);
Classes = data(:,3);
train = [1 3 4 5 6 7];
test = [2 8 9];
%%# Train
SVMModel = fitcsvm(Classes(train),Attributes(train,:))
classOrder = SVMModel.ClassNames
sv = SVMModel.SupportVectors;
figure
gscatter(train(:,1),train(:,2),Classes)
hold on
plot(train(:,1),train(:,2),'ko','MarkerSize',10)
legend('good','bad','Support Vector')
hold off
predict 和 svmclassify 我都试过了;但它返回一个错误。这两个函数的基本区别是什么?
[label,score] = predict(SVMModel,test);
label = svmclassify(SVMModel, test);
【问题讨论】:
-
“它返回一个错误” - 然后按照文档的建议使用它,您将看到输出和差异,或者在这里不那么模糊!
predict:此预测命令计算已识别模型的 K 步提前输出。svmclassify:使用支持向量机分类器结构中的信息对数据矩阵 Sample 中的每一行数据进行分类。 -
@Wolfie 不一定适用于
predict。看我的回答;有大量名为predict的函数,它们都根据您输入的任何输入系统执行其他操作。 -
我只是复制第一个文档结果的懒惰,但可能比没有证据表明甚至这样做的 OP 懒惰 略少 ;) 一个很好的详细答案.
标签: matlab classification svm