一、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、引入松弛变量

2、SVM损失函数优化
2.1 损失函数优化
2.2 根据 f(x) 和约束条件构造拉格朗日函数:
其中要求μi 和αi>=0
2.3 优化后的原始问题:
2.4 对偶问题:
先求 L 函数对 w,b,ξ的极小值,再求其对α和μ的极大值
2.5 对偶问题求解
第一步 对w,b,ξ三个参数求偏导
带回拉格朗日函数
整理约束条件

求解用SMO算法求解
2.5 软间隔问题的支持向量结论
2.6 总结软间隔最大化算法


4.找到全部的支持向量(0<αi<C),计算出
5.计算所有的 的平均值得到最终的
6、线性不可分支持向量机的公式(判别式)
由于:
种判别函数的形式可以写成
八、非线性支持向量机
1、升维是一种处理线性不可分问题的方式
2、引入核函数
2.1 目的: 防止升维后维度爆炸,时间空间消耗内存大
2.2 定义:
此时,对偶问题的目标函数变为了:
判别函数变为了:
3、常用的核函数
4、非线性支持向量机svm算法流程总结



KKT条件
SVM和逻辑回归对比
1、SVM优缺点
2、和逻辑回归区别