机器学习中常用的核函数

在机器学习中常用的核函数,一般有这么几类,也就是LibSVM中自带的这几类:
1) 线性:K(v_1,v_2)=<v_1,v_2>
2) 多项式:K(v_1,v_2)=(\gamma<v_1,v_2>+c)^n
3) Radial basis function:K(v_1,v_2)=\exp(-\gamma||v_1-v_2||^2)
4) Sigmoid:K(v_1,v_2)=\tanh(\gamma<v_1,v_2>+c)

举例:有一个一维的数据分布是如下图的样子,用一个直线来分开,发现不论画在哪,比如绿色竖线,都不可能把两个类分开。

使用一个简单的升维的方法,把原来一维的空间投射到二维中,x->(x, x^2)。
0->(0,0) 
1->(1,1)
2->(2,4)

 


举例2 多项式核函数中\gamma=1, c=0, n=2的情况。

下面这张图位于第一、二象限内。我们关注红色的门,以及“北京四合院”这几个字下面的紫色的字母。我们把红色的门上的点看成是“+”数据,紫色字母上的点看成是“-”数据,它们的横、纵坐标是两个特征。显然,在这个二维空间内,“+”“-”两类数据不是线性可分的。

 

我们现在考虑核函数K(v_1,v_2) = <v_1,v_2>^2,即“内积平方”。
这里面v_1=(x_1,y_1), v_2=(x_2,y_2)是二维空间中的两个点。

这个核函数对应着一个二维空间到三维空间的映射,它的表达式是:
P(x,y)=(x^2,\sqrt{2}xy,y^2)
可以验证,
\begin{align} <P(v_1),P(v_2)> &= \, <(x_1^2,\sqrt{2}x_1y_1,y_1^2),(x_2^2,\sqrt{2}x_2y_2,y_2^2)> \\ &= \, x_1^2x_2^2 + 2x_1x_2y_1y_2+y_1^2y_2^2 \\ &= \, (x_1x_2 + y_1y_2)^2 \\ &= \, \, <v_1,v_2>^2 \\ &= \, K(v_1,v_2) \end{align}

在P这个映射下,原来二维空间中的图在三维空间中的像是这个样子:

(前后轴为x轴,左右轴为y轴,上下轴为z轴)

注意到绿色的平面可以完美地分割红色和紫色,也就是说,两类数据在三维空间中变成线性可分的了。

参考链接:https://www.zhihu.com/question/24627666

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值