在matlab环境下实现支持向量机算法
作者:faaronzheng 转载请注明出处!
关于支持向量机的理论部分我就不进行介绍了,网上有很多关于支持向量机的讲解。如: 支持向量机通俗导论(理解SVM的三层境界)有兴趣的可以自行查找一下。这里我主要介绍一下如何在matlab环境下自己实现支持向量机算法。
需要用到的工具:matlab,cvx工具包
首先需要配置一下cvx的环境。cvx的配置和具体语法请参考 CVX Users’ Guide。cvx工具包和手册
接下来我们直接从最后推导出的对偶形式入手(不清楚为什么是这个形式及各个符号意思的还请参考理论部分)
function arf=getArf(xapp1,xapp2,C,eveSigma)
format long;
data=[xapp1;xapp2];
K=CreateKernelMatrix(data,data,eveSigma); %构造核矩阵
label1=ones(size(xapp1,1),1);
label2=ones(size(xapp2,1),1);
label2(:,1)=2;
label=[label1;label2];
n=size(data,1);
vecone=ones(n,1);
cvx_begin %用cvx优化目标函数
variable arf(n);
expression part1;
expression part2;
part1=vecone'*arf;
part2=quad_form(arf,label'*K*label);
max part1-1/2*part2;
subject to %约束条件
for i=1:narf(i)>=0;arf(i)<=C;
end
arf'*label==0;
cvx_end end
上面这段代码的主要目的是获得拉格朗日乘子α。一定有人想问知道α有什么用呢?这是因为超平面都可以用α来表示。
拉格朗日乘子α不为零的即为支持向量。这样就可以求出w和b了。将w和b求出后我们就可以得到超平面。有了超平面就可以进行分类啦!
PS.上面代码中构造核矩阵的代码我是参考的SimpleMKL中的代码。具体可以参考Code部分
在matlab环境下实现支持向量机算法相关推荐
- MAC OX 10.8 环境下运行TLD算法(MATLAB版)
关于TLD算法,就不具体阐述了,谷歌百度搜索一下,介绍的文章相当多. 概述: 一.安装和编译高性能OpenCV 2.4.6 二.安装xcode和command line tool 三.MATLAB安装 ...
- matlab腔内光子寿命,mcFORnp matlab环境下,利用蒙特卡洛模拟光子包在生物组织内的光路传输 271万源代码下载- www.pudn.com...
文件名称: mcFORnp下载 收藏√ [ 5 4 3 2 1 ] 开发工具: matlab 文件大小: 215 KB 上传时间: 2014-12-29 下载次数: 8 提 供 者: 徐某 ...
- matlab系统分析与仿真,第9章 MATLAB环境下的仿真_Matlab系统分析与程序设计_ppt_大学课件预览_高等教育资讯网...
第 9章 MATLAB环境下的仿真软件 Simulink 9.1 Simulink的基本操作 9.2 Simulink的几类基本模块 9.3 仿真模型参数的设置 9.4 子系统的建立与封装 9.5 在 ...
- 20180614 MATLAB环境下自动代码生成
为加速软件开发过程,汽车电子开发过程会采用自动代码生成技术,目前该技术主要集中于应用层控制策略和算法的开发.将传统的算法与软件代码的两个步骤,实现为算法的开发及测试集成于一体的发开模式. 现阶段国内较 ...
- matlab usb cam,Matlab环境下使用USB2.0摄像头编程image acquisition tools(读书笔记) | 学步园...
(1)Matlab环境下使用USB2.0摄像头编程 Matlab中的图像获取工具箱给我们提供了必要的函数,我们直接调用就可以了,主要就是简单的介绍如何使用该工具箱进行对USB2.0摄像头的编程. TA ...
- matlab 图像矢量量化,MATLAB环境下基于矢量量化的说话人识别系统(1)
第21卷第6期湖 北 工 业 大 学 学 报2006年12月 Vol.21No.6 Journal of Hubei Univer sity of Technology Dec.2006 [收稿日期] ...
- 在MATLAB环境下使用深度学习网络DeepLabV3+进行语义分割(云图分割)
摘要:本文主要讲述在MATLAB2020a环境下利用深度神经网络DeepLabV3+进行语义分割,分割感图像中的云层.讲述了:1.训练数据的获取.训练集制作:2.DeepLabV3+模型的构建:3.D ...
- matlab 数组去掉0,科学网—在Matlab环境下去除矩阵中的零向量 - 李航的博文
主要用到了any()函数. e.g.1 找到矩阵中为零的列向量,并将其删除. >> a=[1,2,3;0,0,0;4,5,6;0,0,0;7,8,9]' a = 1 0 4 ...
- 在MATLAB环境下编写高斯贝塞尔-轨道角动量的光编解码代码
以下是一个MATLAB环境下编写高斯贝塞尔-轨道角动量的光编解码代码的示例: 首先,我们需要定义一些参数.例如,我们可以选择使用高斯-贝塞尔光来传输信息.高斯-贝塞尔光是一种横向模式具有平面波前的光, ...
最新文章
- Docker基本使用命令
- android-async-http使用例子
- JS组件系列——封装自己的JS组件,你也可以
- (原创)Android6.0亮屏流程分析
- sql 计算 某字段 不同值出现 的次数_教你如何合理选用和计算电线规格,电线回路分配和注意事项...
- 【BZOJ1976】[BeiJing2010组队]能量魔方 Cube 最小割
- python 百分比输出_获取Linux系统负荷百分比的python脚本
- chm帮助文档编辑_零成本轻松制作帮助文档方法分享
- js 正则或_Web前端工程师要知道的JS 常用正则表达式
- SQLServer2005/2008新的高效分页方法-row_number()over函数的使用
- 谷歌浏览器不能用flash插件的问题
- android获取进程内存使用信息、一键加速(内存清理)与进程重要级别解析
- Web 3.0 :它是互联网的未来吗?
- 第一篇:微信公众平台开发实战Java版之了解微信公众平台基础知识以及资料准备...
- 天翼云内网服务器映射端口,天翼云服务器创建对等连接(不同账户组内网)
- Machine Learning With Spark--读书笔记
- ACM训练史上最详细计划(大神养成记)
- 3dsMax撤销不管用,3dsMax转成多边形之后无法撤回操作,3dsmax的操作步骤一直为空
- java实现零钱通系统
- 反编译华为U8825Dldquo;framework-res.apkrdquo;出现的错误提示(2)