核函数(Kernel Function)与SVM
来源:互联网 发布:淘宝个体户营业执照 编辑:程序博客网 时间:2024/05/22 13:22
1.核函数把低维空间映射到高维空间
下面这张图位于第一、二象限内。我们关注红色的门,以及“北京四合院”这几个字下面的紫色的字母。我们把红色的门上的点看成是“+”数据,紫色字母上的点看成是“-”数据,它们的横、纵坐标是两个特征。显然,在这个二维空间内,“+”“-”两类数据不是线性可分的。
我们现在考虑核函数
这里面
这个核函数对应着一个二维空间到三维空间的映射,它的表达式是:
在P这个映射下,原来二维空间中的图在三维空间中的像是这个样子:
前后轴为x轴,左右轴为y轴,上下轴为z轴)
注意到绿色的平面可以完美地分割红色和紫色,也就是说,两类数据在三维空间中变成线性可分的了。
而三维中的这个判决边界,再映射回二维空间中是这样的:
这是一条双曲线,它不是线性的。
如上面的例子所说,核函数的作用就是隐含着一个从低维空间到高维空间的映射,而这个映射可以把低维空间中线性不可分的两类点变成线性可分的。当然,我举的这个具体例子强烈地依赖于数据在原始空间中的位置。事实中使用的核函数往往比这个例子复杂得多。它们对应的映射并不一定能够显式地表达出来;它们映射到的高维空间的维数也比我举的例子(三维)高得多,甚至是无穷维的。这样,就可以期待原来并不线性可分的两类点变成线性可分的了。
2.常见的核函数
在机器学习中常用的核函数,一般有这么几类,也就是LibSVM中自带的这几类:
1) 线性:
2) 多项式:
3) Radial basis function:
4) Sigmoid:
我举的例子是多项式核函数中
3.核函数的性质
核函数只是满足某些必要条件的函数,其作用要与具体的算法结合才能显示出来。
我来简明说一下SVM中核技巧(kernel trick)的作用,一句话概括的话,就是降低计算的复杂度,甚至把不可能的计算变为可能。
核函数有如下一个性质:
其中
4.核函数与SVM
求解SVM时,其原始形式(这里我们假设已经对原始的输入做了变换,即输入模型的样本变成了
i = 1 , 2… N(N为样本个数)
这是个二次规划,因为未知量的个数是参数w的维度,而w的维度与样本的维度相等,即等于变换后
我们也知道,SVM原始形式的对偶问题是:
很明显,未知量
仅仅做对偶还没有解决问题,因为在
5.相关视频地址
SVM
Kernel
原文链接:https://www.zhihu.com/question/24627666
根据原文链接整理而来
- 核函数(Kernel Function)与SVM
- 核函数kernel function
- 常用核函数-Kernel Function
- 常用核函数-Kernel Function
- 核函数-Kernel Function汇总
- 核函数(Kernel Function)整理
- 核函数-Kernel Function汇总
- Kernel SVM (核函数支持向量机)
- svm kernel 函数
- 收集一下核函数-Kernel Function
- 收集一下核函数-Kernel Function
- 收集一下核函数-Kernel Function
- 一些重要的核函数-Kernel Function
- 核函数K(kernel function)
- 非线性SVM与核函数
- (转自丕子)核函数-Kernel Function汇总
- SVM学习笔记-核函数与非线性SVM
- 如何使用SVM基于Suffix Array的String Kernel核函数
- kindeditor自定义工具栏
- 第三方登录之支付宝登录
- CentOS7.2下Hadoop2.7.2的集群搭建
- 一些蒟蒻认为的好题(趣题)【更新中】
- 怪物属性表-等级地图
- 核函数(Kernel Function)与SVM
- Java环境变量设置
- 2017年下半年5场优质运维大会时间表出来啦~(9-12月)
- phaser.js 踩坑之旅
- Vue2+VueRouter2+Webpack+Axios 构建项目实战2017重制版(九)再把内容页面渲染出来
- 02:同行列对角线的格子
- react native学习笔记6——Props和State
- C++创建不定长数组并求连续子数组最大和/排序
- LUCAS定理简述