核方法,是个牛掰哄哄的理论,它的身影在数据挖掘的很多算法中都有出现,它最强大的地方就是在低维空间完成了高维空间的内积运算的表示,这是一个极其强大的属性,以至于我们对核方法充满了兴趣~
何谓核方法
我们对线性问题可以非常容易地求解,而对于非线性的问题的解决,一个非常重要的思路就是,将非线性问题映射到某个空间中,在新空间中,可以将原来非线性的问题转变为线性问题解决掉。
在核方法中,我们不去关心映射到底是怎样的,你映射关系爱咋咋滴,我们只需要构造一个核函数,该核函数可以表示映射后的空间的数据的内积。而内积恰恰是数据挖掘的方法中非常重要的一种计算方式,数据挖掘的很多方法都是借助于内积来完成的,所以核函数是具有强大功能的函数。
核函数定义
设
x
是输入空间(欧氏空间
其中 xi,xj∈x,<⋅>表示内积
则称函数 K(xi,xj) 为核函数。
核函数的构建
那么如何去构建符合上述条件的函数呢?
正定核:
函数
K(xi,xj)
为正定核的充要条件:
对任意的
xi,xj∈x
,
i,j=1,2,3,...,m
,
K(xi,xj)
对应的
Gram
矩阵
是半正定矩阵。
正定矩阵的定义:
设 K 是
半正定则是 xTKx⩾0
Mercer核:符合Mercer定理的核函数,正定核比Mercer核更具有一般性。
核方法的特点
1)尽量避免了维度灾难。用低维函数表示了高维内积,可以有效地避免高维的数据计算问题。
2)不必关心低维到高维的映射。核函数隐形地表示了低维到高维的映射,但是不需要关心具体映射的形式(爱多复杂多复杂)。
3)核方法独立于其他算法。可以与其他不同方法结合。
常用核函数
1)线性核函数
K(xi,xj)=xTi∗xj+c
2)多项式核函数
K(xi,xj)=(xTi∗xj+c)d
c
常取1
3)高斯核函数
高斯核函数用来做SVM的高斯径向基函数。
4)指数核函数
K(xi,xj)=exp(−||xi−xj||2σ2)
补充:
径向基函数是一个取值仅仅依赖于离原点距离的实值函数,也就是
K(x)=K(‖x‖)
,或者还可以是到任意一点
x0
的距离,
x0
点称为中心点,也就是
K(x,x0)=K(‖x−x0‖)
。
各种核函数整理的博客:
http://www.java123.net/v/920304.html
核方法的应用
1)最成功的应用:SVM
2)常见数据挖掘方法与核方法的结合,如KPCA、KFD。
小结
核方法跟映射(变换)没有直接关系,只是高维内积在低维的一种表示。应用及其广泛,只要是对非线性可分问题的处理,都可以通过核方法来改进。核函数的选择是必须面对的一个问题,不能保证所选核函数即使最好的核函数。