支持向量机算法

描述

1、支持向量机

1、基于统计理论的学习系统

2、属于有监督学习的方法

3、用于样本分类

4、分为线性分类模型与非线性分类模型

    下面看一道例题:有18组数据,有不同的类别属性,建立SVM模型。

向量机

 

clear
clc
X0=xlsread('Excel文件位置','B2:E19');
for i=1:3
    X(:,i)=(X0(:,i)-mean(X0(:,i)))/std(X0(:,i));%数据标准化
end
[m,n]=size(X);
e=ones(m,1);
D=[X0(:,4)];
B=zeros(m,m);
C=zeros(m,m);
for i=1:m
    B(i,i)=1;
    C(i,i)=D(i,1);
end
A=[-X(:,1).*D,-X(:,2).*D,-X(:,3).*D,D,-B];
b=-e;
f=[0,0,0,0,ones(1,m)];
lb=[-inf,-inf,-inf,-inf,zeros(1,m)]';
x=linprog(f,A,b,[],[],lb);
W=[x(1,1),x(2,1),x(3,1)];
CC=x(4,1);
X1=[X(:,1),X(:,2),X(:,3)];
R1=X1*W'-CC;
R2=sign(R1);
disp('程序输出结果:');
disp('超平面方程为:');
disp(['X1:',num2str(x(1,1))]);
disp(['X2:',num2str(x(2,1))]);
disp(['X3:',num2str(x(3,1))]);
disp(['intercept:',num2str(x(4,1))]);
disp('超平面分类结果:');
R=[R1,R2]

 

结果展示:

Optimization terminated.
程序输出结果:
超平面方程为:
X1:2.4476
X2:0.07549
X3:1.17
intercept:0.70991

超平面分类结果:

R =

    2.6679    1.0000
    2.6442    1.0000
    2.6488    1.0000
    1.0000    1.0000
    1.0000    1.0000
    2.4507    1.0000
   -0.8074   -1.0000
    1.0000    1.0000
    0.1764    1.0000
   -1.0000   -1.0000
    0.3683    1.0000
   -1.7115   -1.0000
   -3.7894   -1.0000
   -6.5114   -1.0000
   -5.3694   -1.0000
    0.6273    1.0000
   -4.1523   -1.0000
   -4.0207   -1.0000

从结果可以看出存在一定的误差,例如,第16组数据分类为1。




审核编辑:刘清

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分