数学健摸学习笔记之支持向量机

数学建模学习笔记之支持向量机(SVM)

​ 支持向量机可以用来分类和回归分析。给定一组训练样本,每个标记为属于两类,一个SVM训练算法建立了一个模型,分配新的实例为一类或其他类,使其成为非概率二元线性分类。除了进行线性分类,支持向量机可以使用所谓的核技巧,它们的输入隐含映射成高维特征空间中有效地进行非线性分类。

说白了就是机器学习里用来进行数据分类的算法。在数模中也基本是用来分类,和聚类分析一样。

原理

原理比较复杂,于是简单写一下,力求能解释清就行,如果想要透彻理解请去看司守奎老师的书以及我给出的链接。

分类问题:对于给定的训练集,寻找到一个映射函数,使进行映射后训练集可以分为两类。

线性可分支持向量机:对于训练集img

其中ai组成输入空间,yi等于-1或1。如果能够寻找到一个线性规则即 ωa+b 使得所有满足y=1的ai和满足y=-1的ai分别处于一个正数的两边,也就说这个训练集是线性可分的。同时以此把这两个训练集分为M+,M-。

凸包:一堆点的最外围点连起来形成封闭图形,这里有M+的凸包和M-的凸包。

定理1:训练集T 线性可分的充要条件是,两类样本集 M+和M-的凸包相离。

定理2:当训练集样本为线性可分时,存在唯一的规范超平面ωa+b=0使得数据集代入分别大于等于1和小于等于-1.其中等于的便是之前的两类数据,也叫做普通支持向量

线性支持向量机:除了普通支持向量分布在两个分类边界余的所有样本点都分布在分类边界以外,此时构造的超平面是硬间隔超平面。线性支持向量机存在不满足定理一和定理二的点,但我们仍要获取超平面,因此要进行软化处理,此时获得软间隔超平面。软化方法就是加入一个调节因子,这个大家都想得到,然后又转化成优化问题,这里不细讲,只要大致了解就行。

非线性可分支持向量机:当两个凸包重合太大了,也就是软化的方法不适用的时候,采用映射的方法,换到另外一个高维空间域里进行分类。通过引进从输入空间 X 到另一个高维的 Hilbert 空间 H 的变换,空间H叫做特征空间

扫描二维码关注公众号,回复: 10112298 查看本文章

C-支持向量机(非线性不可分):映射到高维H空间之后还是不能直接可分,在H空间进行软化再分类。

模型主要是利用图像学原理,通过对凸包的研究把求超平面的问题转化成求约束下的优化问题,从而利用拉格朗日算子和KTT条件来求解。

案例分析蠓虫分类问题研究

问题重述:

生物学家试图对两种蠓虫进行鉴别,依据的资料是触角和翅膀的长度,已经测得了9支Af和6支Apf的数据如下:

Af:(1.24,1.27),(1.36,1.74),(1.38,1.64),(1.38,1.82),(1.38,1.90),(1.40,1.70),(1.48,1.82),(1.54,1.82),(1.56,2.08)

Apf:(1.14,1.82),(1.18,1.96),(1.20,1.86),(1.26,2.00),(1.28,2.00),(1.30,1.96)

现在的问题是:

(1) 根据如上资料,如何制定一种方法,正确的区分两类蠓虫?

(2) 对触角和翼长分别为(1.24,1.80)、(1.28,1.84)、(1.40,2.04)的三个标本,用所得到的方法加以识别。

符号规定

用x1表示蠓虫的触角,x2表示蠓虫的翼长,y1=1标示Af,y2=-1标示Apf。

模型建立:即SVM模型,只不过套了一个例子

MATLAB代码

clc,clear;
x0=[1.24,1.27;1.36,1.74;1.38,1.64;1.38,1.82;1.38,1.90;1.40,1.70
    1.48,1.82;1.54,1.82;1.56,2.08;1.14,1.82;1.18,1.96;1.20,1.86
    1.26,2.00;1.28,2.00;1.30,1.96];%把所有数据当做训练样本
 x=[1.24,1.80;1.28,1.84;1.40,2.04];%用来判断的值
 group = [ones(9,1);-ones(6,1)];%标记分类
 s = svmtrain(x0,group);%训练
 check=svmclassify(s,x0);%检查
 solution=svmclassify(s,x);%判断结果

总结

支持向量机简单的使用比较简单,但是最好还是需要深入了解一下其中的原理,包括模型的建立拉格朗日算子和KTT等,想要画出一系列的向量机的图也要用其他的代码。支持向量机是一个很好的聚类工具,实际来说掌握了会比较好。同样也将一些我学习用到的资料整理了一下,包括司守奎老师的书和视频教程和后续代码,由于不知道怎么弄成免费的,想要可以私聊。最好自己百度搜,一大堆,我只是整理一点:https://download.csdn.net/download/yuanjiteng/11529562

分享一下其他写的非常好的文:https://cloud.tencent.com/developer/article/1169178

分享一下其他写的非常好的文:https://cloud.tencent.com/developer/article/1169178

https://blog.csdn.net/macyang/article/details/38782399
想要深入学习务必看完,之后你肯定就懂了SVM基础用法,下一篇想弄一个svm用于识别的实例。

发布了13 篇原创文章 · 获赞 3 · 访问量 2275

猜你喜欢

转载自blog.csdn.net/yuanjiteng/article/details/99413090