(一)前言
支持向量机比较适合于高维数据,可以减缓维数灾难问题;也非常适用于小样本,建模只需要“支持向量”即可。
支持向量机的思想非常简单,就是可以找到一个超平面使得不同类别的数据可以尽量分开,并且为了增加测试集分类的鲁棒性(robust),希望这个超平面与各类别距离最近的数据点均越远越好。
- 定义1.1:测试样本(x,y)的类别预测规则,如下:
上面的式子可以统一为 .
(二)线性可分的SVM
基本原理
因为下面要计算点到超平面的距离,所以这里给出距离公式,假设超平面S为,某个点p到S的距离定义如下。
-
定义2.1
根据SVM的思想:
1.在所有点的类都分对的条件下,即
2.希望每类中最近的点离分割面的距离越远越好。设这个最近的距离是C,那么SVM问题可以定义如下: -
定义2.1:最大边缘分类器
其中,
对定义2.1中的不等式的左右均乘以 ,并且令,那么上述等式就可以转化为 -
定义2.2
其中,
在数学中,带根号的式子不太好处理,并且处理最大化问题可以转化为处理最小化问题(定义2.2中需要最大化的式子是正数,所以与其等价的最小化问题即为其倒数),那么定义2.2可以重新定义为2.3. -
定义2.3
其中,
对偶问题
为了求解定义2.3中的未知参数,下面我们将改问题转化为其对偶形式。
首先,解释下定义2.3是如何和定义2.4等价的。在定义2.3中
1.当 时,即点分类错误。那么,要想让定义2.4中的 使得式子最大化,那么式子将变为无穷大,即无解。
2.当时,即点分类正确。那么,此时,要想让定义2.4中的使得式子最大化,那么只能为零。即为最小化。
总结一下:定义2.4有解,就是在时去最小化。是不是和定义2.3在处理同一个问题?
-
定义2.4
其中,
那么在数学上,定义2.4有一个下限,我们可以通过这个下限去求解得到超平面。即所以将我们的问题重新定义为2.5。 -
定义2.5
其中,
定义2.5里面的最小化问题很好解,即为求和的偏导数,令其为零。
将解出的和代入到定义2.5中得到:
终于推导完成了!!!最后再将最大化求解等价转化为最小化问题求解即为定义2.6。它是个关于的函数,即为一个二次规划问题,推荐大家一个软件,在做规划的时候非常实用,这个软件就是lingo啦。
- 定义2.6
细心的你应该发现了,上述推导过程中有一系列条件,来保证有解。这些条件合在一起即为KKT条件:
1.
2.
3.,
4.
超平面求解以及支持向量的解释
根据上面得到的,我们可以反代回偏导数为0的式子中,求解和即
,其中的求解需要用到KKT条件中的第4个条件,当时,则,对于不同的会有不同的的估计值,所以一般最后对于的估计,会取这些估计值的平均值。
那么也就是说,在求解时,我们只用到了的那些点,而根据KKT条件,当时,,这些点均在分割线上,而这些点正是支持向量。
如果有任何错误,欢迎批评指正!
欢迎点赞,系列二会更新非线性可分的SVM或者kernel
网友评论