matlab实现SVM算法进行分类

matlab实现SVM算法进⾏分类
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 =
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
4.0000
6.0000    2.7000
4.0000    3.0000
2.0000    7.0000
>> lsd = [true true true true false false false false false false false]
lsd =
1×11 logical 数组
1  1  1  1  0  0  0  0  0  0  0
>> Y = nominal(lsd)
Y =
1×11 nominal 数组
true      true      true      true      false      false      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,'kernel_Function','quadratic','showplot',true);
警告: svmtrain will be removed in a future release. Use fitcsvm instead.
> In svmtrain (line 230)
>> %use the trained svm (svmStruct) to classify the data
>> RD = svmclassify(svmStruct,sd,'showplot',true)
警告: svmclassify will be removed in a future release. Use the predict method of an object returned by fitcsvm instead. > In svmclassify (line 47)
RD =
11×1 nominal 数组
true
true
true
true
false
false
false
false
false
false
false
>> % RD is the classification result vector
(3)⾼斯分类
>> sp = [5,4.5;3,7;6,6;4,6;5,6.5]%positive sample points sp =
5.0000    4.5000
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]
sn =
固定床反应器
1.0000
2.0000
3.0000    5.0000
7.0000    3.0000
3.0000
4.0000
6.0000    2.7000
4.0000    3.0000
2.0000    7.0000
>> nsn = size(sn)
nsn =
7    2
>> sd = [sp,sn]
错误使⽤ horzcat
串联的矩阵的维度不⼀致。
>> sd = [sp;sn]
柴油机起动器sd =
5.0000    4.5000
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
4.0000
6.0000    2.7000
4.0000    3.0000
热流道温控器2.0000    7.0000
>> lsd = [true true true true true false  false  false  false  false  false  false]
lsd =
1×12 logical 数组张力计算
1  1  1  1  1  0  0  0  0  0  0  0
>> Y = nominal(lsd)
Y =
1×12 nominal 数组
变速箱试验台true      true      true      true      true      false      false      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,'Kernel_Function','rbf','rbf_sigma',0.6,'method','SMO','showplot',true);
警告: svmtrain will be removed in a future release. Use fitcsvm instead.
> In svmtrain (line 230)
>> % use the trained svm (svmStruct) to classify the data
>> RD = svmclassify(svmStruct,sd,'showplot',true)
警告: svmclassify will be removed in a future release. Use the predict method
of an object returned by fitcsvm instead.
> In svmclassify (line 47)
RD =
12×1 nominal 数组
true
true
true
true
true
false
false
false
false
false
false
false
>> %RD is the classification result vector
⾼斯分类结果图

本文发布于:2024-09-22 23:26:17,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/216563.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:分类   选择   实验   函数   线性   准确率   问题
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议