1.实验内容
(1)掌握支持向量机(SVM)的原理,核函数类型选择以及核参数选择原则等,并用malab的SVM函数求解各类分类问题实例。
(2)熟悉基于libsvm二分类的一般流程与方法,并对"bedroom,forest"两组数据进行分类(二分类),最后对试验分类的准确率进行分析。
2.实验过程
(1)线性分类
>> sp = [3,7;6,4;4,6;7.5,6.5]
sp =
3.0000 7.0000
6.0000 4.0000
4.0000 6.0000
7.5000 6.5000
>> nsp = size(sp)
nsp =
4 2
>> sn = [1,3;5,2;7,3;3,4;6,1]
sn =
1 3
5 2
7 3
3 4
6 1
>> nsn = size(sn)
nsn =
5 2
>> sd = [sp;sn]
sd =
3.0000 7.0000
6.0000 4.0000
4.0000 6.0000
7.5000 6.5000
1.0000 3.0000
5.0000 2.0000
7.0000 3.0000
3.0000 4.0000
6.0000 1.0000
>> lsd = [true true true true false false false false false]
lsd =
1×9 logical 数组
1 1 1 1 0 0 0 0 0
>> Y = nominal(lsd)
Y =
1×9 nominal 数组
true true true true false false false false false
>> figure(1);
>> subplot(1,2,1)
>> plot(sp(1:nsp,1),sp(1:nsp,2),'m+');
>> hold on
>> plot(sn(1:nsn,1),sn(1:nsn,2),'c*');
>> subplot(1,2,2)
>> svmStruct = svmtrain(sd,Y,'showplot',true);
警告: svmtrain will be removed in a future release. Use fitcsvm instead.
> In svmtrain (line 230)
>>
线性分类结果:
(2)非线性分类
>> sp = [3,7;6,6;4,6;5,6.5]
sp =
3.0000 7.0000
6.0000 6.0000
4.0000 6.0000
5.0000 6.5000
>> nsp = size(sp);
>> sn = [1,2;3,5;7,3;3,4;6,2.7;4,3;2,7];
>> nsn = size(sn)
nsn =
7 2
>> sd = [sp;sn]
sd =
3.0000 7.0000
6.0000 6.0000
4.0000 6.0000
5.0000 6.5000
1.0000 2.0000
3.0000 5.0000
7.0000 3.0000
3.0000