这是SVM的第一部分,如想了解,请参考:
机器学习|支持向量机参数求解 01
—
噪音点出现了
如下图所示,有一个带圈的噪音点出现在了右下角,决策边界在哪里?
如果决策边界这样,可以看出它不是好的决策边界,因为噪音点是错误点,不应该拿它作为支持向量。
02
—
克服噪音:松弛因子
SVM适当地放宽了约束条件,将 yi * f(xi) >=1,放宽为 yi * f(xi) >=1-ei,这个间隔ei就是软间隔。
为什么要减去ei,而不是加上ei,因为前者可能使得更多的样本点成立,比如第一幅图中,作为正的支持向量点可能不满足 yi * f(xi) >=1,但是可能满足 yi * f(xi) >=1-ei,这样即便噪音点出现了,我们仍然可能得到第一幅的分类决策边界。
ei在SVM中称为松弛因子,SVM中用控制因子C来控制ei,当C很大时,ei发挥的作用很小,也就是松弛的很小;C很小时,ei发挥的作用很大,可能松弛的作用更强些。
03
—
SVM最精彩部分
以上介绍了SVM参数求解和软间隔部分,它们还不是SVM最巧妙的部分。
SVM真正精彩之处在于将低维空间线性不可分问题转化为高纬空间线性可分问题,比如一个数据集有3个特征,此时线性不可分,但是转化成9个特征后,在此空间下可能就线性可分了,如下图所示,在二维空间下线性不可分,转化到三维下,就可以得到一个线性可分面。
这是如何做到的?核函数将低维下的原始特征映射到了高维下。
数据映射到高维空间后,是否求解的复杂度陡增呢? 不会的。在低维空间下样本点求内积的结果,只需花费O(1)时间复杂度直接转化为高维下的内积结果。
04
—
SVM总结
至此,SVM就介绍完了,SVM的目标就是求出一个最胖的决策宽度,所有的样本点中,真正起到支持作用的点就是离着决策边界最近的点。大家可以拿两个点来求决策边界为例,想一下SVM的几何意义。
里面的理论涉及到,点到直线的距离,目标函数通过添加一个约束条件变得更加精简,此时变为了已知约束条件和目标函数的二次规划问题,采取了拉格朗日法求最佳决策边界,也就是w和b。
为了解决噪音点,约束条件做了一定的松弛。
核函数是添加的一个映射,将低维空间下的数据映射到高维下,并且计算的时间复杂度几乎未改变,这是核函数顺利实施的前提。