关于支持向量机核函数的一些理解
我们知道,有时候在原样本空间内并不能很好的给训练样本分类,但是把原样本空间映射到一个更高维空间后,就可以得到较好的分类,例如异或函数的取值。
相应的
那么,我们究竟该怎么理解k(xi, xj)呢?
1.首先根据k(xi, xj)的定义,我们给出一个具体的例子
k(xi, xj)的定义为:
eg:
假设原特征空间为二维的(x1, x2),映射到三维后为(x1*x1, *x1*x2, x2*x2),那么,我们就可以取核函数k(x, y) = <x, y>*<x, y>
验证:设x = (x1, x2),y = (y1, y2),映射后X = (x1*x1, *x1*x2, x2*x2), Y = (y1*y1,
*y1*y2, y2*y2)。
则内积<X, Y> = x1*x1*y1*y1 + 2*x1*x2*y1*y2 + x2*x2*y2*y2。
k(x, y) = (x1*y1 + x2*y2) ^ 2 = x1*x1*y1*y1 + 2*x1*x2*y1*y2 + x2*x2*y2*y2 = <X,Y>
2.现在考虑一下,为什么要令核函数等于内积?
Answer:
两个特征向量的角度不同,模数不同,内积就不同,换句话说,内积可以显示出两个特征向量的相似度,那么核函数就是为了表示
两个特征向量的核函数。
3.以高斯核函数为例,结合以上两点作具体分析
高斯核函数的||xi - xj||项就是衡量两个特征向量的相似度的,相似度越高,||xi - xj||越接近0,核函数的值越接近1,反之,核函数的
值就越接近0。来看下图,
x轴和y轴各代表一个一维向量,z轴代表k(x,y)的值,可以看出,在xy平面的对角线上,x = y,对应的k(x, y)为1,离对角线越远
代表x和y的相似度越低,k(x,y)越小。
下面给出高斯核函数将数据映射到高维甚至无穷维的原理,为了便于计算,我们令高斯核的带宽为1。