支持向量机matlab代码程序_支持向量机(SVM) 从理论到放弃,从代码到理解

本文介绍了支持向量机(SVM)的基本概念,包括最大边缘超平面、函数间隔和几何间隔。通过间隔最大化,SVM寻找线性可分或非线性可分数据的最佳分类超平面。文中详细讨论了线性与非线性支持向量机,并介绍了核函数的概念,特别是正定核和常用核函数如多项式和高斯核。此外,文章还提到了序列最小优化(SMO)算法,这是一种用于求解SVM问题的有效方法。
摘要由CSDN通过智能技术生成

基本概念

支持向量机(support vector machines,SVM)是一种二分类模型,它的基本模型是定义在特征空间上的间隔最大的线性分类器。支持向量机还包括核技巧,这使它成为实质上的非线性分类器。其学习策略就是间隔最大化,可形式化为一个求解凸二次规划(convex quadratic programming)的问题,也等价于正则化的合页损失函数的最小化问题,支持向量机的学习算法是求解凸二次规划的最优化算法。

支持向量机学习方法包含构建由简至繁的模型:线性可分支持向量机(linear support vector machine in linearly separable case)、线性支持向量机(linear support vector machine)及非线性支持向量机(non-linear support vector machine)。当训练数据线性可分时,通过硬间隔最大化(hard margin maximization),学习一个线性的分类器;当训练数据近似线性可分时,通过软间隔最大化(soft margin maximization),也学习一个线性的分类器;当训练数据不可分时,通过核技巧(kernel trick)及软间隔最大化,训练非线性的分类器。

最大边缘超平面

对于一个二分类问题,若数据集是线性可分的,那么我们可以找到这样一个超平面,使得数据的两个label分别位于平面两侧。并且,可以注意到,这样的超平面我们可以找到无数个。

05596d559630c49d01ec746e9d777404.png

然而,虽然有无数个这样的超平面,我们并不能保证这些超平面在未知实例上的效果都一样的好。因此,我们需要找到一个具有很好的泛化误差的超平面。这里,我们可以选取最大边缘超平面。下面将讲述原因。

函数间隔

下图中有A,B,C三点,表示3个实例,对于这3个实例的预测,我们预测的确信度会是A>B>C这样一个结果。一般来说,一个点距离超平面的远近可以表示分类预测的确信程度。在超平面

确定的情况下, ​
能够相对地表示点
距离超平面的远近。而 ​
的符号与类似标记 ​
的符号是否一致能够表示分类是否正确。所以可用量 ​
来表示分类的正确性及确信度,这就是函数间隔(function margin)。

014c51ac7d6b64daa4433e79c018e29a.png

几何间隔

函数间隔可以表示分类预测的正确性及确信度,但是选择分离超平面时,只有函数间隔还不够,因为只要成比例地该边

和​
,超平面并没有改变,但函数间隔却变为原来地两倍。因此,我们需要对分离超平面的法向量
加某些约束,如规范化。这时,函数间隔便成了几何间隔(geometric margin)。

c47ec2bd87cd369198fb13c956207abc.png

间隔最大化

对训练数据集找到几何间隔最大的超平面意味着以充分大的确信度对训练数据进行分类。即,不仅将正负实例点分开,而且对最难分的实例点也有足够大的确信度将它们分开,这样的超平面对未知的新实例有很好的分类预测能力。这也是为什么我们要选取最大边缘超平面的原因。

线性可分支持向量机

最大间隔法

84579f10aa6353b731f6a8ce786d4b42.png

最优化

运用拉格朗日对偶性,通过求解对偶问题(dual problem)得到原始问题的最优解。

优点:

  1. 对偶问题往往更易求解
  2. 自然引入核函数,进而推广到非线性分类问题

首先构建拉格朗日函数,对每个不等式约束引进拉格朗日乘子

​ ,定义拉格朗日函数:

其中,​

为拉格朗日乘子向量。

根据拉格朗日对偶性,原始问题的对偶问题就是极大极小问题:

附上推导过程

302ea7c57f1bf54cc67e5e94d09c1c3c.png

2f9b21bed5d72ae00b3c4243a252fe49.png

fc924fde0712ecf625f2f59f21e6ad7d.png

736d2c34a88149c69a1f21a4a32e5785.png

线性支持向量机

当数据集无法线性可分时,如下图所示

0bc6b7a28d9d7b676b4bf009dcdbe718.png

这时,我们可以对每一个样本点引进一个松弛变量 ​

,使函数间隔加上松弛变量大于等于1,这样,约束条件就变成

同时,对每个松弛变量

​ ,支付一个代价
​ 。目标函数由原来的​
变成

这里,​

称为惩罚参数,一般由应用问题决定。最小化目标函数包含两层含义:使
尽量小,即间隔尽量大,同时使误差分类点的个数尽量小,C是调和二者的系数。

同上述推导方法,我们可写出下面算法

cc45587d94c81b6fd904cb41743bc733.png

943c294036dc36a777ccc35b79d18f30.png

c9b7e5c245fd083e2797eecfd5d43c8d.png

d8d2f5820335e865283eaf50fb35d943.png

非线性支持向量机

有时

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值