机器学习(六)~支持向量机
1. 支持向量机模型
学习策略: 间隔最大化
学习算法: 凸二次规划
适用条件:
- 当训练数据线性可分:线性可分支持向量机(硬间隔最大化)
- 当训练数据近似线性可分:线性支持向量机(软间隔最大化)
- 当训练集线性不可分时:非线性支持向量机(软间隔最大化+核函数)
几何间隔:
SVM与感知机区别: 通过间隔最大化使得解唯一
核函数: 将输入从输入空间映射到特征空间得到的特征向量之间的内积
2. 线性可分支持向量机
2.1 原始问题
**前提条件:**训练集线性可分
SVM基本型:
2.2 对偶问题及求解
对偶问题:
此时目标函数求:
从而得到:
αi*>0时,yi(w·xi+b)-1=0, (xi,yi)为支持向量,只有支持向量会影响最终结果
2.3 线性可分支持向量机算法
3. 线性支持向量机
3.1 软间隔最大化
软间隔最大化: 当训练集近似线性可分时,允许一些特异点被误分,防止过拟合
- 此时w的解是唯一的,b可能不唯一
- 线性支持向量机包括线性可分支持向量机
3.2 对偶问题及求解
对偶问题为:
- 仅ɑ约束与线性可分支持向量机不同
3.3 线性支持向量机算法
- ɑ*>0对应支持向量,分多种情况:1) 若ɑi*<C,则§i=0,支持向量xi恰好落在间隔边界上;2) 若ɑi*=C,0<§i<1,则xi在间隔边界与分离超平面之间;3) 若ɑi*=C,§i=1,则xi在分离超平面上;4) 若ɑi*=C,§i>1,则xi在分离超平面误分类一侧
4. 非线性支持向量机
4.1 核函数
当训练集线性不可分时,可将x映射到高维空间,使得近似线性可分,即将xi·xj转换为φ(xi)·φ(xj),由于φ(xi)·φ(xj)难求,采用核函数К(xi,xj)替代,从而将非线性问题转化为线性问题
核函数充要条件:
核函数是指正定核函数,正定核的充要条件是K(x,z)对应的Gram矩阵是半正定矩阵
常用核函数:
- 1.多项式核函数
- 2.高斯核函数
4.2 非线性支持向量机算法
存在问题: 当训练样本大时,用以往优化算法解决凸二次规划问题很低效
解决办法: SMO(序列最小最优化算法)
4.3 SMO(序列最小最优化算法)
SMO关键过程:
- 1.变量选择(选择两个变量,固定其他变量)
- 2.两个变量的二次规划求解