SVM支持向量机——MATLAB在数学建模中的应用
数据建模及MATLAB实现(三)
随着信息技术的发展和成熟,各行业积累的数据越来越多,因此需要通过数据建模的方法,从看似杂乱的海量数据中找到有用的信息。
支持向量机(SVM)
支持向量机(Support Vector Machine,SVM)是新一代的基于统计理论的学习系统。SVM按照监督学习的方式,将训练集按照类别分开,或者是预测新的训练点所对应的类别。
SVM基本思想
SVM目的是构建一个分割两类的超平面,并且令这个超平面使得两类的分割达到最大化。以一个很大的边缘分隔两个类可以使得期望泛化误差最小化——即当出现新的样本时分类错误的概率尽可能得小。
一般来说,两类之间最中间的一个隔板分类错误概率最小,因此,在SVM中,我们也用两类之间的超平面ωTxi+b=0\omega^Tx_i+b=0ωTxi+b=0作为两类的隔板,而ωTxi+b=α\omega^Tx_i+b=\alphaωTxi+b=α与ωTxi+b=−α\omega^Tx_i+b=-\alphaωTxi+b=−α分别是两类的平行的边界平面。边界平面,即与分类器平面平行且穿过数据集中的至少一个点的超平面。但边界平面的选择有许多种,要让超平面分割的准确,需要让两个边界平面的距离最大化,也就是边缘最大化。“通过SVM学习”的含义就是找到最大化边缘的超平面。
SVM理论基础
首先,假设存在一个容量为nnn的训练集样本{(xi,yi),i=1,2,⋯,n}\{(x_i,y_i),i=1,2,\cdots,n\}{(xi,yi),i=1,2,⋯,n}由两个类别组成,若xix_ixi属于第一类,则记yi=1y_i=1yi=1;若xix_ixi属于第二类,则记yi=−1y_i=-1yi=−1。
若存在分类超平面:
ωTxi+b=0\omega^Tx_i+b=0 ωTxi+b=0
则能够将样本正确的分为两类,即相同类别的样本都都落在分类超平面的同一侧。即满足
{ωTxi+b≥αyi=1ωTxi+b≤−αyi=−1α>0\left\{ \begin{aligned} \omega^Tx_i+b&\ge\alpha \ \ \ y_i=1\\ \omega^Tx_i+b&\le-\alpha \ \ \ y_i=-1\\ \alpha&>0 \end{aligned} \right. ⎩⎨⎧ωTxi+bωTxi+bα≥α yi=1≤−α yi=−1>0
两边同除以α\alphaα则可表示为
{ωTxi+b≥1yi=1ωTxi+b≤−1yi=−1\left\{ \begin{aligned} \omega^Tx_i+b&\ge1 \ \ \ y_i=1\\ \omega^Tx_i+b&\le-1 \ \ \ y_i=-1 \end{aligned} \right. {ωTxi+bωTxi+b≥1 yi=1≤−1 yi=−1
可以综合表达为
yi(ωTxi+b)≥1y_i(\omega^Tx_i+b)\ge1 yi(ωTxi+b)≥1
而超平面之间的距离,即边缘可表示为
2∣∣ωT∣∣\frac{2}{||\omega^T||} ∣∣ωT∣∣2
则规划问题可表示为
max:2∣∣ω∣∣max:\frac{2}{||\omega||} max:∣∣ω∣∣2
取倒数得
min:∣∣ω∣∣2min:\frac{||\omega||}{2} min:2∣∣ω∣∣
得到最终目标规划问题:
min:∣∣ω∣∣2s.t.yi(ωTxi+b)≥1min:||\omega||^2\\ s.t.\ \ \ \ y_i(\omega^Tx_i+b)\ge1 min:∣∣ω∣∣2s.t. yi(ωTxi+b)≥1
最后利用拉格朗日对偶理论,将该问题转化为对偶问题,使用二次规划方法求解,求得最优的ω∗\omega^*ω∗和b∗b^*b∗,构造最优分类函数f(x)f(x)f(x)。
在输入空间中,若数据不是线性可分的,支持向量机通过非线性映射∅:Rn→F\varnothing:R^n\rightarrow F∅:Rn→F将数据映射到某个点积空间FFF,然后在点积空间中执行上述线性算法。在文献中,这一函数称为“核函数”。
支持向量机MATLAB程序设计
支持向量机MATLAB程序设计——SVM.m如下:
function [x,W,R]=SVM(X0)
for i=1:3X(:,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:mB(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);
R1=X*W'-CC;
R2=sign(R1);
R=[R1,R2];
SVM支持向量机——MATLAB在数学建模中的应用相关推荐
- matlab数学建模可应用到第几章,《MATLAB在数学建模中的应用(第2版)》
<MATLAB在数学建模中的应用(第2版)> 卓金武 (编者)) 基本信息 •出版社: 北京航空航天大学出版社; 第2版 (2014年9月1日) •丛书名: MATLAB开发实例系列图书 ...
- MATLAB在数学建模中的应用
MATLAB在数学建模中的应用 一.预备知识 1.1.关于MATLAB软件 由于科学技术及计算机的飞速发展,各类数学软件不断涌现,这使在解决各类复杂的问题变得非常简单.常用的数学软件有Mathemat ...
- 卓金武《MATLAB在数学建模中的应用》 第2版
内容介绍 本书的作者都具有实际的数学建模参赛经历和竞赛指导经验.书中内容完全是根据数学建模竞赛的需要而编排的,涵盖了绝大部分数学建模问题的matlab求解方法.本书内容分上下两篇.上篇介绍数学建模中常 ...
- 地面搜索matlab算法,数学建模中的地面搜索问题
tRs)时小( 第30卷第8期湖南科技学院学报 Vbl_30NO.82009年8月 JournalofHunanUniversityofScienceandEngineering Aug.2009 数 ...
- 数学建模中matlab程序,数学建模中常用的30个MATLAB程序和函数
<数学建模中常用的30个MATLAB程序和函数>由会员分享,可在线阅读,更多相关<数学建模中常用的30个MATLAB程序和函数(15页珍藏版)>请在人人文库网上搜索. 1.内部 ...
- MATLAB在数学建模中的应用 随手笔记(二)----- 数据拟合方法
声明:本篇文章只是个人知识点归纳总结,不代表全书内容,望各位大佬不喜勿喷.梳理顺序是按照书籍的实际顺序梳理. 作者:sumjess 目前内容:第一章 数学建模常规方法及其MATLAB实现---数据拟合 ...
- MATLAB在数学建模中的应用(三)
optimset函数 功能:创建或编辑优化选项参数结构. 语法: 1 options = optimset('param1',value1,'param2',value2,-) 2 options = ...
- 灰色关联度矩阵——MATLAB在数学建模中的应用
灰色预测及其MATLAB实现(一) 灰色预测是一种常规的预测手段,具有操作简便,所需数据量少等优点,一般只需有4个数据就可以进行预测. 灰色预测是基于灰色系统理论的预测方法.灰色系统由我国著名学者邓聚 ...
- matlab在数学建模中的应用pdf
复制这段内容后打开百度网盘手机App,操作更方便哦 链接:https://pan.baidu.com/s/1vi4gNYaUwSDhdWDjrtsPow 提取码:MD34
最新文章
- vim编辑器异常退出产生备份文件
- scratch学习_学习scratch编程能学到什么?对孩子有帮助吗?
- C2679	二进制 没有找到接受 std::string 类型的右操作数的运算符(或没有可接受的转换)
- SpringCloud之微服务
- Linq之隐式类型、自动属性、初始化器、匿名类
- Tomcat Script(python)
- android 手机型号 命名规则,自己整理:各大品牌安卓手机的型号命名规律
- Qt 字符编码转换(UTF-8 转换为 GBK)
- 修改 QQ 任务栏托盘区小图标和等级图标
- 微软电脑管家登陆微软商店 简单无打扰 支持杀毒和垃圾清理等
- matlab 关于interpreter的使用
- 把数字用拼音表示并输出
- 2021年汽车激光雷达行业研究报告
- Android拦截黑名单(简易版)
- 安装Photon虚拟机
- visio跨职能流程图带区背景及大小及改变格式 (转)
- CentOS常用命令50个含示例
- 破解SQLyog 30天试用
- DynaTrace Ajax Edition:IE浏览器性能分析工具
- 工业相机的传感器靶面大小