svm是有超平面划分,从简单xy轴来看,就是平面上的直线。
>>最基本的,先从平面上直线划分两类问题开始。
>>最最开始的,先有数据。
用matlab来生产数据
用matlab搜索mixture expert,参考了里面部分代码。
如下。在窗口粘贴代码或者新建脚本 script 运行即可
miu1 =[1 2];
sigma1 = [2 0 ; 0 0.5];
miu2 =[-3 -5];
sigma2 = [1 0 ; 0 1];
type1 = mvnrnd(miu1,sigma1,1000);
type2 =mvnrnd(miu2,sigma2,1000);
lable1 = ones(length(type1),1);
lable2 = ones(length(type2),1);
type1 = [type1 lable1];
type2 = [type2 lable2];
% generated two type for classification
hold on;
scatter(type1(:,1),type1(:,2));
scatter(type2(:,1),type2(:,2),'fill');
fulldata = [type1;type2];
trainPercentage = 80;
trainNumber = trainPercentage* length(fulldata) / 100;
testNumber = size(fulldata,1) - trainNumber;
trainSamples = [];
for i = 1: trainNumber
id = randi(length(fulldata),1);
trainSamples = [trainSamples;fulldata(id,:)];
fulldata(id,:) = [];
end
testSamples = fulldata;
%splited fulldata into testSamples and trainSamples
上面代码生成了‘两团’正反例子,合并后为完整数据集
随机抽样80%,然后后用20%进行测试。
>>最基本的,先从平面上直线划分两类问题开始。
>>最最开始的,先有数据。
用matlab来生产数据
用matlab搜索mixture expert,参考了里面部分代码。
如下。在窗口粘贴代码或者新建脚本 script 运行即可
miu1 =[1 2];
sigma1 = [2 0 ; 0 0.5];
miu2 =[-3 -5];
sigma2 = [1 0 ; 0 1];
type1 = mvnrnd(miu1,sigma1,1000);
type2 =mvnrnd(miu2,sigma2,1000);
lable1 = ones(length(type1),1);
lable2 = ones(length(type2),1);
type1 = [type1 lable1];
type2 = [type2 lable2];
% generated two type for classification
hold on;
scatter(type1(:,1),type1(:,2));
scatter(type2(:,1),type2(:,2),'fill');
fulldata = [type1;type2];
trainPercentage = 80;
trainNumber = trainPercentage* length(fulldata) / 100;
testNumber = size(fulldata,1) - trainNumber;
trainSamples = [];
for i = 1: trainNumber
id = randi(length(fulldata),1);
trainSamples = [trainSamples;fulldata(id,:)];
fulldata(id,:) = [];
end
testSamples = fulldata;
%splited fulldata into testSamples and trainSamples
上面代码生成了‘两团’正反例子,合并后为完整数据集
随机抽样80%,然后后用20%进行测试。