您的位置:首页 > 其它

支持向量机SVM(2)之核函数

2018-04-02 11:28 246 查看


在上一篇中,一切的推导都是基于上图这种类型,建立在数据分布是线性可分的情况,然而很多情况下都不是线性可分的。例如下图这种情况。



从图中可以看出,无论哪一条线都无法将两类点分开。这个时候就要引入核函数的概念了。
三、核函数
上一篇文章中最后推导得到了:



现在我们把它们带入到分界方程:



如果我们已经求出了α与b,那么y可以写成仅仅依赖xi与xj的矢量积形式,这一点非常关键。很多时候我们需要从数据中挖掘出新的特征来进行训练,而不是简单粗暴的使用原始数据,比如我们从x中挖掘出新的特征x平方,我们需要再一步一步推导y的表达式吗?只需要将<xi,x>换成<(xi)2,x2>(平方形式)就可以。



整个过程很流畅,φ(x)可以将数据从低维空间映射到高维空间中,为分类提供了新的视角。如下图所示:



在以为空间中是,两种点无法分开,但是通过φ(x)=(x,0.5x*x+2)映射到二维空间后,很容易找到分界线将这些不同的点分开。低维映射到高维使得线性可分成为可能。考虑到m<<n,这引起一个问题就是随着维数的增大计算量迅速变大,如何简化操作呢。在这里引入核函数:



通过映射函数,我们能从原始数据中(低维空间)抽象出所需的特征(高维空间),由低维空间向高维空间的转化很多时候非常的麻烦。核函数的目的就是设置一种过程,可以跳过维度变化,通过相对简单的计算直接得到矢量积。

举个栗子:





通过上面的推导,我们发现虽然维度转化的过程较为繁琐复杂,但是矢量点积的结果确实相当简洁,这一次我们直接用核函数计算:



四、常用核函数
支持向量机中有几种常用的核函数:多项式核(Polynominal Kernal)、径向核(RBF、也叫高斯核)、以及逻辑核(Sigmoid Kernel)。

多项式核:





维数越高,偏差越低,方差越高,越容易出现过拟合的情况,反之则相反。所以不适合选择过高的维度,最适合的维度需要通过交叉验证。
RBF:



高斯核函数是一个对应于无限空间的核函数,证明方法就是对ex进行泰勒级数展开,为了书写方便,在这里我们让





我们可以通过高斯核直接给出无限空间矢量积的表达式。
高斯核的偏差和方差通过δ来控制,δ越大偏差越大,方差越小,越容易欠拟合,如下面第一幅图。



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: