SVM简单代码实现MATLAB

一、前言

在推导出SVM公式的基础上,就可以考虑动手实现了。SVM解决分类问题,这里用MATLAB来实现,具体就不多说了,所以首先给出两种标记不同的点,然后分别标记为+1,-1。先训练,再测试,最后画图展示出来。代码也是主演参考的别人的,有加上自己的理解注释。

二、流程及实现

1.流程图



2.大家对二次规划可能有点陌生,可以查看帮助文档或者百度,讲解得都很详细,下面是我简单记录一下,其实就是一一对应起来:



3.得到大致流程之后,下面直接贴代码,复制之后就可直接运行。

主函数代码如下:

[plain]  view plain   copy
  1. %------------主函数----------------  
  2. clear all;  
  3. close all;  
  4. C = 10;  %成本约束参数  
  5. kertype = 'linear';  %线性核  
  6.   
  7. %①------数据准备  
  8. n = 30;  
  9. %randn('state',6);   %指定状态,一般可以不用  
  10. x1 = randn(2,n);    %2行N列矩阵,元素服从正态分布  
  11. y1 = ones(1,n);       %1*N个1  
  12. x2 = 4+randn(2,n);   %2*N矩阵,元素服从正态分布且均值为5,测试高斯核可x2 = 3+randn(2,n);   
  13. y2 = -ones(1,n);      %1*N个-1  
  14.    
  15. figure;  %创建一个用来显示图形输出的一个窗口对象  
  16. plot(x1(1,:),x1(2,:),'bs',x2(1,:),x2(2,:),'k+');  %画图,两堆点  
  17. axis([-3 8 -3 8]);  %设置坐标轴范围  
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值