我编写了以下代码来检查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字符矩阵来暗示这两个区域的标签。我这样做了,但我不知道为什么我的代码不起作用。
答案 0 :(得分:2)
您应该为每个实例提供类标签。所以使用:
group = [repmat('r',200,1); repmat('g',200,1)];
svmStruct = svmtrain(all_data, group, 'ShowPlot',true);