机器学习(六)~支持向量机

  • 1. 支持向量机模型
  • 2. 线性可分支持向量机
  • 2.1 原始问题
  • 2.2 对偶问题及求解
  • 2.3 线性可分支持向量机算法
  • 3. 线性支持向量机
  • 3.1 软间隔最大化
  • 3.2 对偶问题及求解
  • 3.3 线性支持向量机算法
  • 4. 非线性支持向量机
  • 4.1 核函数
  • 4.2 非线性支持向量机算法
  • 4.3 SMO(序列最小最优化算法)


1. 支持向量机模型

学习策略: 间隔最大化
学习算法: 凸二次规划
适用条件:

  • 当训练数据线性可分:线性可分支持向量机(硬间隔最大化)
  • 当训练数据近似线性可分:线性支持向量机(软间隔最大化)
  • 当训练集线性不可分时:非线性支持向量机(软间隔最大化+核函数)

几何间隔:

支持向量机和最大似然分类 支持向量机的模型_数据挖掘


SVM与感知机区别: 通过间隔最大化使得解唯一

核函数: 将输入从输入空间映射到特征空间得到的特征向量之间的内积

2. 线性可分支持向量机

2.1 原始问题

**前提条件:**训练集线性可分

SVM基本型:

支持向量机和最大似然分类 支持向量机的模型_支持向量机和最大似然分类_02

2.2 对偶问题及求解

对偶问题:

支持向量机和最大似然分类 支持向量机的模型_机器学习_03


此时目标函数求:

支持向量机和最大似然分类 支持向量机的模型_支持向量机_04


支持向量机和最大似然分类 支持向量机的模型_支持向量机和最大似然分类_05


从而得到:

支持向量机和最大似然分类 支持向量机的模型_数据挖掘_06


αi*>0时,yi(w·xi+b)-1=0, (xi,yi)为支持向量,只有支持向量会影响最终结果

2.3 线性可分支持向量机算法

支持向量机和最大似然分类 支持向量机的模型_支持向量机_07

3. 线性支持向量机

3.1 软间隔最大化

软间隔最大化: 当训练集近似线性可分时,允许一些特异点被误分,防止过拟合

支持向量机和最大似然分类 支持向量机的模型_数据挖掘_08

  • 此时w的解是唯一的,b可能不唯一
  • 线性支持向量机包括线性可分支持向量机

3.2 对偶问题及求解

对偶问题为:

支持向量机和最大似然分类 支持向量机的模型_算法_09


支持向量机和最大似然分类 支持向量机的模型_支持向量机_10

  • 仅ɑ约束与线性可分支持向量机不同

3.3 线性支持向量机算法

支持向量机和最大似然分类 支持向量机的模型_数据挖掘_11

  • ɑ*>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 非线性支持向量机算法

支持向量机和最大似然分类 支持向量机的模型_算法_12


存在问题: 当训练样本大时,用以往优化算法解决凸二次规划问题很低效

解决办法: SMO(序列最小最优化算法)

4.3 SMO(序列最小最优化算法)

SMO关键过程:

  • 1.变量选择(选择两个变量,固定其他变量)
  • 2.两个变量的二次规划求解