【待补充】支持向量机(SVM)原理和python实现

文章目录


前言

完成第一部分,我写完实习报告马上来补充。


一、线性硬间隔SVM

1.应用对象

完全线性可分的样本

2.几何角度

找到一个超平面,与两类样本点的距离都足够远,对样本进行划分。划分超平面可定义为
w T x + b = 0 \boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b=0 wTx+b=0

3.最大间隔分类器

3.1间隔(magin)
离划分超平面最近的点到超平面的距离:

【待补充】支持向量机(SVM)原理和python实现

称之为间隔;

3.2最大间隔分类器
通过最大间隔法求最优划分超平面,即

【待补充】支持向量机(SVM)原理和python实现

【待补充】支持向量机(SVM)原理和python实现

其中 y i ( w T x + b ) y_{i}(\boldsymbol{w}^{\mathrm{T}} \boldsymbol{x}+b) yi​(wTx+b)为点到超平面的相对距离,令离划分超平面最近的点到划分超平面相对距离等于1,则

【待补充】支持向量机(SVM)原理和python实现

【待补充】支持向量机(SVM)原理和python实现

而最大化 ∥ w ∥ − 1 {\|w\|}^{\mathrm{-1}} ∥w∥−1等价于最小化 ∥ w ∥ 2 {\|w\|}^{\mathrm{2}} ∥w∥2,则上式可重写为

【待补充】支持向量机(SVM)原理和python实现

这就是支持向量机(SVM)的基本型,也就是原问题,它是一个凸二次规划问题,其中系数 1 2 \frac{1}{2} 21​是为了方便之后的最小值求解,不影响最小值的大小;由于对偶问题相比与原问题更易求解,所以下面把原问题转化为对偶问题。

4.原问题转化为对偶问题

4.1有约束问题转化为无约束问题
对原问题的每条约束添加拉格朗日乘子,则原问题的拉格朗日函数可以写为

【待补充】支持向量机(SVM)原理和python实现

则原问题可以写成如下式子

【待补充】支持向量机(SVM)原理和python实现

为什么可以直接转化呢?解释如下

【待补充】支持向量机(SVM)原理和python实现

由此,有约束的原问题转化为了无约束问题。

4.2无约束问题转化为对偶问题
原问题由于是凸二次规划问题,且满足Slater条件,所以原问题与它的对偶问题具有强对偶关系,即原问题和对偶问题最优解相同(定理,详情可以找证明了解)

【待补充】支持向量机(SVM)原理和python实现

求L的最小值

【待补充】支持向量机(SVM)原理和python实现

将得到的两个式子代入L,则有

【待补充】支持向量机(SVM)原理和python实现

则化简之后,得到对偶问题

【待补充】支持向量机(SVM)原理和python实现

求得使对偶问题达到最大值的最优解 λ ∗ \lambda^{*} λ∗之后,由于原问题和对偶问题的解相同的充分必要条件是最优解满足KKT条件(定理,下面会简单补充阐述原理)

【待补充】支持向量机(SVM)原理和python实现

则可以求得原始问题的最优解 w ∗ w^{*} w∗和 b ∗ b^{*} b∗:

【待补充】支持向量机(SVM)原理和python实现

*4.3(补充)KKT条件原理简单推导
简单的解释一下KKT条件,由于

【待补充】支持向量机(SVM)原理和python实现

则有

【待补充】支持向量机(SVM)原理和python实现

要使对偶问题的最优解等于原问题的最优解,也就是满足强队偶关系,则需要使上式中的两个等号成立,即还需要满足下面条件

【待补充】支持向量机(SVM)原理和python实现

二、线性软间隔SVM

1.应用对象

近似线性可分的样本

三、非线性SVM

四、SOM算法原理

五、python代码实现

参考

1.【机器学习】【白板推导系列】【合集 1~23】
2.李航,统计学习方法
3.周志华,机器学习
4.Peter Harrington,机器学习实战

总结

上一篇:使用SVM支持多个类别


下一篇:《机器学习实战》:通俗理解支持向量机