SVM算法

2018-05-20  本文已影响0人  _Monk

svm是一种用来进行分类的算法,如果待分类数据是线性可分的,就可以求解线性可分支持向量机来进行分类;如果待分类数据是线性不可分的,就可以通过求解线性向量机来进行分类;如果待分类数据是非线性的可以通过求解非线性支持向量机来进行分类。本文简单的讲解了每一种向量机应的求解方法。

基本概念


1. 超平面方程

图1. 超平面方程

2. 函数间隔

(1)一般来说,一个点距离分离超平面的远近可以表示分类预测的确信程度。点距离超平面的距离如何用数学方程表示?


3. 几何间隔


注意

4. 支持向量

线性可分支持向量机的支持向量
线性支持向量机的支持向量

求解支持向量机


超平面方程即为支持向量机

1. 线性可分支持向量机

训练集线性可分时,怎么求分离超平面方程?

(1)目标函数

为了能够正确的对数据集进行分类,我们需要使得几何间隔最大。对于线性可分的数据而言,线性可分分离超平面会有无穷多个,但是几何间隔最大的分离超平面是唯一的。这里的间隔最大化又称为硬间隔最大化,数学表达式如下:

图2. 目标函数
函数间隔和几何间隔有如下关系:
图3. 函数间隔和几何间隔关系
为此:目标函数可以转化为下式:

上式的最大化可以变为下式的最小化,最终的目标函数经过转化变成下式:
图4. 最终目标函数

(2)目标函数求解

上式是一个凸二次规划问题,可以使用拉格朗日对偶性,通过求解对偶问题得到上式的最优解。
求对偶问题解法如下:



对于对偶问题的求解可以使用序列最小优化算法(SMO),具体求解不作详细分析。

2. 线性支持向量机

(1)目标函数

对于线性非支持向量机的求解,上面求解线性可分支持向量机的求解是不适用的,因为上面的方法中的不等式约束并不能都成立,为了解决这个问题,需要修改硬间隔最大化,使其成为软间隔最大化。具体实现就是对每个样本点引入一个松弛变量,使函数间隔加上松弛变量大于等于1,所以线性可分支持向量机中的目标函数变为下式:

图4. 线性支持向量机目标函数

(2)目标函数的求解

参考上面的过程。

非线性支持向量机

TODO

参考资料

  1. 《机器学习》,周志华著。
  2. 《统计学习方法》,李航著。
上一篇下一篇

猜你喜欢

热点阅读