在数据集上应用SVM

时间:2016-04-11 21:44:02

标签: matlab machine-learning svm

我编写了以下代码来检查svmtrain

a = 5*[randn(200, 1) + 5, randn(200, 1) + 5];
b = 5*[randn(200, 1) + 5, randn(200, 1) - 5];
all_data = [a;b];

plot(a(:,1) , a(:,2),'b.'); hold on
plot(b(:,1) , b(:,2),'r.');

group = ['r';'b'];

svmStruct = svmtrain(all_data, group,'ShowPlot',true);

我创建了两个正态分布式数据集(a和b),然后将它们组合成一个2D数组。现在我想使用svmtrain分隔这两个区域,但我不知道如何处理Group参数。正如matlab帮助所述,我可以使用2x1字符矩阵来暗示这两个区域的标签。我这样做了,但我不知道为什么我的代码不起作用。

1 个答案:

答案 0 :(得分:2)

您应该为每个实例提供类标签。所以使用:

group = [repmat('r',200,1); repmat('g',200,1)];
svmStruct = svmtrain(all_data, group, 'ShowPlot',true);

svm