基本概念
将最优决策边界向上&下平移,在遇到第一个点时停下来,这个点被称为支撑向量Support Vector;支撑向量到决策边界的距离是d;这两条平移后的直线的间隔(2d)被称为最大间隔Margin。
支撑向量就是支撑着两条平移边界的点,我们只需要重点研究这几个支撑向量即可,这也是SVM名称的由来;Margin就是分界面可以移动的范围,范围越大表示容错能力越强。
所以我们可以看到,所谓的支撑向量机,最初就是一个线性分类器,只不过这个线性分类器不仅能把样本分对,可以最大化Margin。
到目前为止,我们就将SVM转换为了一个最优化问题,下面的工作就是求出Margin的数学表达式,即将支撑向量机思想转化为数学问题。
软间隔
在线性可分问题中,对于样本点来说,存在一根直线可以将样本点划分,我们称之为Hard Margin SVM;但是(同样线性不可分),有时候会出现不那么完美,样本点会有一些噪声或者异常点,并不能完全分开。即没有一条直线可以将样本分成两类。那么就提出了Soft Margin SVM。
我们观察上面的表达式的形式,其实相当于在Soft Margin SVM中加入了L1正则。可以将理解为正则化项,避免因为训练出的模型往极端的方式发展,让模型的拥有一定的容错能力,泛化性有所提升。系数越大,相应的容错空间越小。如果取正无穷,意味着逼迫着容错空间趋近于零,也就变成了Hard Margin SVM。
SVM需要标准化处理
在使用SVM算法时,需要先对数据进行标准化处理。
SVM算法寻找的是使得Margin区间最大的中间的决策边界(超平面),而衡量Margin使用的是数据点之间的距离。涉及距离的,就应当对量纲问题进行关注,即进行标准化处理。
对于SVM算法来说,如果特征在不同维度上,数据尺度不同的话,非常影响SVM算法的决策边界。
SVM解决非线性分类
有一个内功深厚的武林高手,面对桌子上的一堆混在一起的绿豆和红豆(数据点),一掌拍在桌子上,用内力将其逼到空中(从低维空间映射到高维空间),再它们在空中分散的时候(在高维空间上线性可分),然后再一刀将其分开(决策平面)
将数据从原始空间映射到Feature Space中去,就可以解决原本的线性不可分问题。这些映射方法就是核函数。