matlab中SVM工具箱的使用方法

举报
kobesdu 发表于 2022/02/10 10:31:09 2022/02/10
【摘要】 支持向量机(support vector machines, SVM)是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使它有别于感知机;SVM还包括核技巧,这使它成为实质上的非线性分类器。SVM的的学习策略就是间隔最大化,可形式化为一个求解凸二次规划的问题,也等价于正则化的合页损失函数的最小化问题。SVM的的学习算法就是求解凸二次规划的最优化算法。下面是操作步...

支持向量机(support vector machines, SVM)是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使它有别于感知机;SVM还包括核技巧,这使它成为实质上的非线性分类器。SVM的的学习策略就是间隔最大化,可形式化为一个求解凸二次规划的问题,也等价于正则化的合页损失函数的最小化问题。SVM的的学习算法就是求解凸二次规划的最优化算法。

下面是操作步骤

1,下载SVM工具箱:see.xidian.edu.cn/faculty/chz…

2,安装到matlab文件夹中

 ​ 1)将下载的SVM工具箱的文件夹放在\matlab71\toolbox\下

 ​ 2)打开matlab->File->Set Path中添加SVM工具箱的文件夹

 ​ 现在,就成功的添加成功了.

 ​ 可以测试一下:在matlab中输入which svcoutput 回车,如果可以正确显示路径,就证明添加成功了,例如:

 ​C:\Program Files\MATLAB71\toolbox\svm\svcoutput.m

3,用SVM做分类的使用方法

 ​ 1)在matlab中输入必要的参数:X,Y,ker,C,p1,p2

 ​ ​ ​ 我做的测试中取的数据为:

 ​ ​ ​ ​

N = 50;

 ​ ​ ​ n=2*N;
​ ​ ​ randn('state',6);
​ ​ ​ x1 = randn(2,N)
​ ​ ​ y1 = ones(1,N);
​ ​ ​ x2 = 5+randn(2,N);
​ ​ ​ y2 = -ones(1,N);

 ​ ​ ​ figure;
​ ​ ​ plot(x1(1,:),x1(2,:),'bx',x2(1,:),x2(2,:),'k.');
​ ​ ​ axis([-3 8 -3 8]);
​ ​ ​ title('C-SVC')
​ ​ ​ hold on;

 ​ ​ ​ X1 = [x1,x2];

 ​ ​ ​ Y1 = [y1,y2]; ​ ​

 ​ ​ ​ X=X1';

 ​ ​ ​ Y=Y1';

 ​ ​ ​ 其中,X是1002的矩阵,Y是1001的矩阵

 ​ ​ ​ C=Inf;

 ​ ​ ​ ker='linear';

 ​ ​ ​ global p1 p2

 ​ ​ ​ p1=3;

 ​ ​ ​ p2=1;

 ​ ​ ​ 然后,在matlab中输入:[nsv alpha bias] = svc(X,Y,ker,C),回车之后,会显示:

 ​ ​ ​

Support Vector Classification
_____________________________
Constructing ...
Optimising ...
Execution time: ​ 1.9 seconds
Status : OPTIMAL_SOLUTION
|w0|^2 ​ ​ ​ : 0.418414
Margin ​ ​ ​ : 3.091912
Sum alpha : 0.418414
Support Vectors : 3 (3.0%)

nsv =

 ​ ​ ​ ​ 3


alpha =

 ​ ​ ​ 0.0000
​ ​ ​ 0.0000
​ ​ ​ 0.0000
​ ​ ​ 0.0000
​ ​ ​ 0.0000

 ​ ​ ​ 2)输入预测函数,可以得到与预想的分类结果进行比较.

 ​ ​ ​ ​ ​ 输入:predictedY = svcoutput(X,Y,X,ker,alpha,bias),回车后得到:

 ​ ​ ​ ​

predictedY =

 ​ ​ ​ ​ 1
​ ​ ​ ​ 1
​ ​ ​ ​ 1
​ ​ ​ ​ 1
​ ​ ​ ​ 1
​ ​ ​ ​ 1
​ ​ ​ ​ 1
​ ​ ​ ​ 1
​ ​ ​ ​ 1

 ​ ​ ​ 3)画图

 ​ ​ ​ ​ ​ 输入:svcplot(X,Y,ker,alpha,bias),回车

 ​补充:

X和Y为数据,m*n:m为样本数,n为特征向量数

比如:取20组训练数据X,10组有故障,10组无故障的,每个训练数据有13个特征参数,则m=20,n=13

Y为20*1的矩阵,其中,10组为1,10组为-1.

对于测试数据中,如果取6组测试数据,3组有故障,3组无故障的,则m=6,n=13

Y中,m=6,n=1



【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。