Create 核函数

pull/2/head
benjas 4 years ago
parent f2f83a825b
commit 086a0ecf6f

@ -567,6 +567,8 @@ where ![1604582794426](assets/1604582794426.png)
#### 核函数的目的
> 最基本的出发点是升维,使得数据更好一些,更多一些
核函数是SVM支持向量机当中最重要的函数
出发点
@ -587,3 +589,77 @@ where ![1604582794426](assets/1604582794426.png)
#### 线性核函数
- Linear核函数对数据不做任何变换。![1604671995246](assets/1604671995246.png)
- 何时用,特征已经比较丰富,样本数据量巨大,需要进行实时得出结果的问题
- 越复杂的模型,针对的数据集越窄,泛化能力越差,且处理速度很慢,当然越复杂也代表着越强大。
- 不需要设置任何参数,直接就可以用
#### 多项式核函数
- 需要给定3个参数![1604673235564](assets/1604673235564.png)
> Q越大越复杂
- 一般情况下2次的更常见![1604673291749](assets/1604673291749.png)
- γ(gama)对内积进行缩放,ζ(zeta)控制常数项Q控制高次项。
其特例就是线性核函数
#### 核函数实例
还是先从一个小例子来阐述问题。假设我们有俩个数据,x=(x1,x2,x3);y=(y1,y2,y3)此时在3D空间已经不能对其进行线性划分那么我们通过一个函数将数据映射到更高维的空间比如9维的话那么(x)=(x1x2,x1x2,x1x3,x2x1,X2x2,x2x3,x3x1,x3x2,x3x3),由于需要计算内积,所以在新的数据在9维空间需要计算<fx),f(y)>的内积,需要花费O(n^2)。
再具体点令x = (1,2,3); y = (4,5,6), 那么f(x) = (1,2,3,2,4,6,3,6,9)计算方式如上的x1x2内积相乘f(y) = (16,20,24,20,25,36,24,30,36)(此时<f(x),fy)>=16+40+72+40+100+180+72+180+324=1024。
似乎还能计算,但是如果将维数扩大到一个非常大数时候,计算起来可就不是一丁点问题了。
但是发现,K(x,y)=(<x,y>)^2
K(x, y) = (4+10+18)^2 = 32^2 = 1024
俩者相等,`K(x,y)=(<x,y>)^2=<f(x),f(y)>`但是K(x,y)计算起来却比<f(x),f(y)>简单的多
也就是说只要用K(x,y)来计算,,效果和<f(x),f(y)>是一样的,但是计算效率却大幅度提高了,如:K(x,y)是O(n),而<f(x),f(y)>是0(n^2)。
所以使用核函数的好处就是,可以在一个低维空间去完成高维度(或者无限维度)样本内积的计算比如K(xy)=(4+10+18)^2的3D空间对比<f(x),f(y)> = 16+40+72+40+100+180+72+180+324的9D空间。
#### 高斯核函数
> 最常用的,最好用的核函数
一维的高斯![1604673996642](assets/1604673996642.png)
![1604674036293](assets/1604674036293.png)
二维的高斯![1604674075933](assets/1604674075933.png)
![1604674100250](assets/1604674100250.png)
公式:![1604674144599](assets/1604674144599.png)
- 看起来像两个样本点之间的距离的度量如果X和Y很相似那么结果也就是1如果不相似那就是0。
- 这样做的好处,特征多了无穷个,得到无穷维。
![1604674300763](assets/1604674300763.png)
#### 参数的影响
高斯核函数看起来不错,但是它对参数是极其敏感的,效果差异也很大
σ^2 = 0.5![1604674774921](assets/1604674774921.png)
> σ越小,顶部越尖,我们计算的是样本到样本点的距离,也就是尖尖到底部的距离,底部到顶部变化越快,层次更分明,那么特征也就越明显,识别的越容易,风险也会比较高
σ^2 = 3![1604674941094](assets/1604674941094.png)
> σ越大,层次越平衡,也就是大家的特征都差不多,那么识别也越不容易,但是风险也相对低
决策边界如下图,σ越小,切分越厉害,越容易过拟合
![1604675119736](assets/1604675194246.png)![1604675119736](assets/1604675119736.png)![1604675249968](assets/1604675249968.png)
> 原σ在下面,注意上面的公式||x - x'||^2 / 2σ^2这里移上去了所以前面加上负号第一个是负1第二个是负10第三个是负100

Loading…
Cancel
Save