【发布时间】:2017-11-05 12:15:34
【问题描述】:
我试过下面的代码
clear all;close all;
data = [27 9 2
11.6723281 28.93422177 2
25 9 2
23 8 2
5.896096039 23.97745722 1
21 6 2
21.16823369 5.292058423 2
4.242640687 13.43502884 1
22 6 2];
Attributes = data(:,1:2);
Classes = data(:,3);
train = [1 3 4 5 6 7];
testInds = [2 8 9];
test1 = data(testInds,1:2);
YTest =data(testInds,3);
%%# Train
svmStruct = svmtrain(Attributes(train,:),Classes(train),'ShowPlot',true);
SVMModel = fitcsvm(Attributes(train,:),Classes(train))
classOrder = SVMModel.ClassNames
sv = SVMModel.SupportVectors;
figure
gscatter(data(:,1),data(:,2),Classes)
hold on
plot(sv(:,1), sv(:,2),'ko','MarkerSize',10)
legend('good','bad','Support Vector')
hold off
[label,score] = predict(SVMModel,test1);
% [predict_label, accuracy, prob_estimates] = predict(SVMModel,test1)
table(YTest(1:2),label(1:2),score(1:10,2),'VariableNames',...
{'TrueLabel','PredictedLabel','Score'})
我尝试了上面的代码。前两列是我的数据,最后一列是组 ID。 SVMModel 是分类。我收到错误
索引超出矩阵维度。
无标题错误(第 34 行) 表(YTest(1:2),标签(1:2),分数(1:10,2),'VariableNames',... 我试图测试一个实例。但是这两个语句都会产生错误
[label,score] = predict(SVMModel,test);
label = svmclassify(SVMModel, test);
【问题讨论】:
标签: matlab classification svm