SVM算法

一、SVM支持向量机算法

支持向量机(Support Vector Machine, SVM)本身是一个二元分类算法,是对感知器算法
模型的一种扩展,现在的 SVM 算法支持线性分类和非线性分类的分类应用,并且也能够直
接将 SVM 应用于回归应用中,同时通过 OvR 或者 OvO 的方式我们也可以将 SVM 应用在
多元分类领域中。

二、感知器算法

参考:

感知器算法_宠乖仪的博客-优快云博客

三、SVM算法和感知器算法相同和不同点

1、相同点:

                (1)是通过寻找超平面,用于解决二分类问题的分类算法;

                (2)超平面一侧的点计算分数结果为负是负例,另一侧结果分数为正是正例

                (3)通过 sign 给出预测标签

                (4)模型判别式同样

 2、不同点

                (1)损失函数不同;感知机是通过判错的点寻找超平面,逻辑回归是通过最大似然寻找超平面,SVM 是通过支持向量寻找超平面

                (2)求解方式不同;感知机和逻辑回归是直接最小化损失函数来得到θ,SVM 有两种求解
方式,一种是直接最小化损失函数来得到θ,另一种先寻找支持向量

四、SVM算法思想

离超平面比较近的点尽可能的远离这个超平面(损失函数定义)

五、SVM支持向量机分类

1. 线性可分支持向量机
        硬间隔最大化
2. 线性支持向量机
        软间隔最大化
3. 非线性支持向量机
        升维(核函数

线性可分:在数据集中,如果可以找出一个超平面,将两组数据分开,那么这个数据集叫做线性可分数据。

线性不可分:在数据集中,没法找出一个超平面,能够将两组数据分开,那么这个数据集就叫做线性不可分数据。分割超平面(Separating Hyperplane):将数据集分割开来的直线/平面叫做分割
超平面。

间隔:数据点到分割超平面的距离称为间隔。

支持向量:离分割超平面最近的那些点叫做支持向量。

六、线性可分支持向量机

硬间隔最大化
需要找到一个超平面:
1. 能够完美分类正负例
2. 距离最近的点越远越好
超平面怎么确定:

1、损失函数表达式 

        

其中γ’代表支持向量的函数距离 

2、简化目标

令γ’=1 (离超平面最近的点,离超平面的距离为1)则损失函数表达式为:

等价于:

3、有约束条件的函数最优化问题的方法

采用拉格朗日函数 

参考:拉格朗日函数_宠乖仪的博客-优快云博客

 4、用拉格朗日函数求解有约束条件的函数最优化问题

对于原始问题:

构建拉格朗日函数:

 其中:

由于我们的原始问题满足 f(x)为凸函数,那么可以将原始问题的极小极大优化转换为对偶函
数的极大极小优化进行求解:

对于原始问题:

对偶函数为:

5、求解对偶函数

5.1 第一步

对这个求极小值

对拉格朗日函数分别求 w 和 b 的偏导:

将w反代回原来的拉格朗日函数中:

 5.2 第二步

 去掉负号转换为求极小问题:

 

通常使用 SMO 算法进行求解,可以求得一组α* 使得函数最优化 

5.3 得到最终的超平面

假设已经通过 SMO 算法,求得α*,此时求 w*很容易:

(下面求b*)

对于任意支持向量,有:

 如何找到支持向量?根据 KKT 条件有:

那么所有α>0 时(可筛选出对应的支持向量)后面一项需要=0 也就是 

求 b 的过程:找到所有个支持向量带进去求出所有个 b,然后求平均
这样我们就得到了分割超平面 

 

6、线性可分支持向量机总结(硬分隔 svm  总结)

 流程:

6.1  原始目标: 求得一组 w 和 b 使得分隔 margin 最大
6.2  转换目标: 通过拉格朗日函数构造目标函数,问题由求得 n 个 w 和 1 个 b 转换为求得m 个α

 6.3  利用 smo 算法求得 m 个α*
 6.4  利用求得的 m 个α*求得 w*和 b*

7、线性可分支持向量机的公式(判别式) 

 由于:

种判别函数的形式可以写成

8、 线性可分支持向量机面临的问题

有些时候,线性不可分是由噪声点决定的

七、线性支持向量机(软间隔最大化)

1、引入松弛变量

由于硬间隔不可分,体现在满足不了约束条件上,于是提出松弛变量ξi≥0(每 个数据点自己有一个ξi)
我们将约束条件放松为:

 

ξ代表异常点嵌入间隔面的深度,我们要在能选出符合约束条件的最好的 w 和 b 的同时,让
嵌入间隔面的总深度越少越好

2、SVM损失函数优化

2.1 损失函数优化

 2.2 根据 f(x) 和约束条件构造拉格朗日函数:

其中要求μi 和αi>=0 

2.3 优化后的原始问题:

 2.4 对偶问题:

 先求 L 函数对 w,b,ξ的极小值,再求其对α和μ的极大值

2.5 对偶问题求解

第一步 对w,b,ξ三个参数求偏导

带回拉格朗日函数 

整理约束条件

由于目标函数中并没有出现 C,可将约束条件的第 2,3,4 项合并,消去 C、

得到最终的待优化函数为:

 

求解用SMO算法求解 

2.5 软间隔问题的支持向量结论

•αi=0 -> 该点为分类正确的点
•0<αi<C -> 该点为软边界上的点(支持向量
•αi=c -> 该点嵌入了软边界内
•         此时如果ξ<1 ,该点被正确分类
•         此时如果ξ=1 ,该点刚好落在超平面上
•         此时如果ξ>1 , 该点被错误分类

2.6 总结软间隔最大化算法

1.设定惩罚系数 C,构造优化问题

2.用 SMO 算法求出α*
3.计算

 4.找到全部的支持向量(0<αi<C),计算出

5.计算所有的 的平均值得到最终的

6、线性不可分支持向量机的公式(判别式) 

 由于:

种判别函数的形式可以写成

 八、非线性支持向量机

1、升维一种处理线性不可分问题的方式

2、引入核函数

2.1 目的: 防止升维后维度爆炸,时间空间消耗内存大

2.2 定义:

 此时,对偶问题的目标函数变为了:

判别函数变为了:

 3、常用的核函数

4、非线性支持向量机svm算法流程总结

1. 选择某个核函数及其对应的超参数
2. 选择惩罚系数 C
3. 构造最优化问题
4. 利用 SMO 算法求解出一组α*
5. 根据α*计算 w*
6. 根据α*找到全部支持向量,计算每个支持向量对应的 bs*
7. 对 bs*求均值得到最后的 b*
学得的超平面为:
最终的判别函数为:

 

KKT条件

SVM和逻辑回归对比

1、SVM优缺点

2、和逻辑回归区别 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

allen wy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值