核函数的起源是对于线性不可分的分类情况,其实可以通过p次方多项式,及非线性模型进行分类;然后对于这类非线性多次方的,其实可以按照广义线性模型来进行升维变形,使之成为线性模型,这样就可以放到SVM中来进行处理了(svm只能处理非线性模型)。

  但是升维之后是有维度爆炸现象的(二次方对应6维度,三次方对应19维度),为了解决这个问题,核函数出场了,简单讲核函数就是计算计算是在低维进行,但是形式却是映射到高维。

  SVM的优化目标:

  假设xi和xj都是低维非线性的函数,我们定义映射到高维的函数为φ(x),那么上面的式子可以写成:

  核函数,就是实现了计算在低维计算,返回形式是高维:

K(x, z) = φ(x) * φ(z)

  但是这种映射并不是容易获取的,需要满足Gram矩阵K = [K(x,z)]是半正定型,也就是说,一个函数想要成为核函数,必须要满足里面任何点的集合形成的Gram矩阵是半正定矩阵。

  这里解释一下,gram矩阵是指n维欧式空间中任意k个向量内积组成的矩阵:

  关于正定矩阵:M是n阶方阵,对于非0向量,z.T *M*z > 0,矩阵的乘法还是矩阵,这里> 0,我理解是因为乘法形式的行列式的值是大于0的。

  半正定矩阵和正定矩阵就是一字之差:z.T * M * z >= 0,半正定允许等于0,所以范围更加宽广,所以血统不那么纯正,所以称之为半正定(越纯正要求越严格)。

  话题再扯回来,如果想要满足核函数,那么函数K的矩阵要满足Gram矩阵是半正定的;这个门槛其实很高的,好在我们数学大佬们已经带我们走出探索的沼泽,并且亲自指出了常用的核函数与:

  线性核函数(Linear Kernel):

  K(x, z) = x·z,线性svm就是使用这个核函数;

  多项式核函数(Polynomial Kernel):

  k(x, z) = (γx·z + r)^d,其中gamma,r以及d需要自己调参;

  高斯核函数(Gaussian Kernel),也称之为径向基和函数(Radial Basis Function,RBF):

  K(x, z)=xp(−γ||x−z||²)

  Sigmoid核函数:

  K(x,z)=tanh(γx∙z+r),其中γ和r需要自己调参;

参考:

https://www.cnblogs.com/pinard/p/6103615.html

SVM – 核函数的更多相关文章

  1. libsvm的安装,数据格式,常见错误,grid.py参数选择,c-SVC过程,libsvm参数解释,svm训练数据,libsvm的使用详解,SVM核函数的选择

    直接conda install libsvm安装的不完整,缺几个.py文件. 第一种安装方法: 下载:http://www.csie.ntu.edu.tw/~cjlin/cgi-bin/libsvm. ...

  2. 5.SVM核函数

    核函数(Kernels) 定义 1.1 (核或正定核) 设是中的一个子集,称定义在上的函数是核函数,如果存在一个从到Hilbert空间的映射 使得对任意的,都成立.其中表示Hilbert空间中的内积. ...

  3. SVM核函数与软间隔

    核函数 在上文中我们已经了解到使用SVM处理线性可分的数据,而对于非线性数据需要引入核函数的概念它通过将数据映射到高维空间来实现线性可分.在线性不可分的情况下,支持向量机通过某种事先选择的非线性映射( ...

  4. 【模式识别】SVM核函数

    下面是几种经常使用的核函数表示: 线性核(Linear Kernel) 多项式核(Polynomial Kernel) 径向基核函数(Radial Basis Function) 也叫高斯核(Gaus ...

  5. 【机器学习】SVM核函数

    知识预备 1. 回顾:logistic回归出发,引出了SVM,即支持向量机[续]. 2.  Mercer定理:如果函数K是上的映射(也就是从两个n维向量映射到实数域).那么如果K是一个有效核函数(也称 ...

  6. svm核函数的理解和选择

    https://blog.csdn.net/leonis_v/article/details/50688766 特征空间的隐式映射:核函数    咱们首先给出核函数的来头:在上文中,我们已经了解到了S ...

  7. svm常用核函数

    SVM核函数的选择对于其性能的表现有至关重要的作用,尤其是针对那些线性不可分的数据,因此核函数的选择在SVM算法中就显得至关重要.对于核技巧我们知道,其目的是希望通过将输入空间内线性不可分的数据映射到 ...

  8. opencv7-ml之svm

    因为<opencv_tutorial>这部分只有两个例子,就先暂时介绍两个例子好了,在refman中ml板块有:统计模型.普通的贝叶斯分类器.KNN.SVM.决策树.boosting.随机 ...

  9. SVM学习笔记

    一.SVM概述 支持向量机(support vector machine)是一系列的监督学习算法,能用于分类.回归分析.原本的SVM是个二分类算法,通过引入“OVO”或者“OVR”可以扩展到多分类问题 ...

随机推荐

  1. kali 使用John破解zip压缩包的密码

    kali  使用John破解zip压缩包的密码 准备工具: zip压缩包带密码   1个 kali Linux机器       1个 操作步骤: 首先将压缩包上传至kali机器,然后使用zip2joh ...

  2. js 正则表达式 贪婪与惰性

    首先引入一个介绍比较详细的网站 http://www.jb51.net/article/31491.htm 接下来是本人的简介 其实贪婪和惰性很容易理解,从字面意思我们就可以知道,所谓的"贪 ...

  3. 项目Beta冲刺 总结

    课程: 软件工程1916|W(福州大学) 作业要求: 项目Beta冲刺 团队名称: 火鸡堂 作业目标: 总结 火鸡堂 队员学号 队员姓名 博客地址 备注 221600111 彼术向 http://ww ...

  4. call和apply的模拟实现

    call 一句话介绍 call: call() 方法在使用一个指定的 this 值和若干个指定的参数值的前提下调用某个函数或方法. 举个例子: var foo = { value: 1 }; func ...

  5. 使用apache 的FileUtils处理文件的复制等操作

    今日思语:春风很柔,夏风很烈,秋风清爽,东风凛冽,愿你就是春夏秋冬的风~ 平时对一些文件进行操作,比如说写文件,读文件,复制一个文件等,使用原生File操作需要读取源文件,生成流对象,再写入一个新的文 ...

  6. selenium 2 设置浏览器安装路径

    selenium 2由于调用的是真实的浏览器,所以当你的浏览器不是安装在默认路径下,你就需要设定浏览器启动路径:若是默认路径,则程序中不需设定浏览器启动路径. 比如说用firefox进行测试 1. f ...

  7. Macbook Pro A1398 換電池手札

    前不久老MBP总是风扇狂转,cpu 100%,一直觉得有问题,就买了工具想着把機器拆開看一下. 結果,不拆不知道,一拆開發現機器變成下面醬紫了: 整個一炸藥包啊!此時我腦中只有一個念頭:得趕緊馬上立刻 ...

  8. linux命令之------rm命令

    rm命令 1)    作用:用于删除一个文件或者目录: 2)    -i:删除前逐一询问确认: 3)    -f:即使原档案属性设为只读,亦直接删除,无需逐一确认: 4)-r:将目录及以下之档案亦逐一 ...

  9. WeUI框架

    WeUI框架 WeUI是一套小程序的UI框架,所谓UI框架就是一套界面设计方案,有了组件,我们可以用它来拼接出一个内容丰富的小程序,而有了UI框架,我们就可以让我们的小程序变得更加美观. 体验WeUi ...

  10. DDL/DML/DCL区别

    DDL DDL的概述 DDL(Data Definition Language 数据定义语言)用于操作对象和对象的属性,这种对象包括数据库本身,以及数据库对象,像:表.视图等等,DDL对这些对象和属性 ...