核函数的起源是对于线性不可分的分类情况,其实可以通过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. 团队第四次——Alpha版本的发布

    这个作业属于哪个课程 https://edu.cnblogs.com/campus/xnsy/2019autumnsystemanalysisanddesign/ 这个作业要求在哪里 https:// ...

  2. Flutter初探与环境搭建

    最近组里有个前端的同事在疯狂学习Flutter,本来上半年就一直想学它,但是..由于个人的原因还有其它的东东想学就一直把它给无限搁置了,为了跟上时代的潮流所以接一来还是下定决定好好将它学一下,毕境如今 ...

  3. stm32中的型号对比——为什么很少用STM32F2,F3?

    源自网络 我觉得有三点: 1. F2属于加强版的F1,内核还是cortex M3,只是主频提高到了120MHz(F1是72MHz),但是这点提升没有实质性意义,性能比不上 2. F3是F4的削弱版,一 ...

  4. MongoDB 企业版4.2.2安装

    一.下载企业版MongoDB安装RPM包 https://www.mongodb.com/download-center/enterprise 二.安装MogoDB4.2.2企业版 1.安装依赖包 n ...

  5. RFM客户价值分类

    # 自定义好的包,亲测可用 原数据和代码思想来自以下网址 # https://github.com/joaolcorreia/RFM-analysis import datetime as dt im ...

  6. shell 脚本接收参数

    test.sh #!/bin/bash echo "脚本名$0" echo "第1个参数$1" echo "第2个参数$2" echo &q ...

  7. python 获取文件本身的绝对路径

    tester.py: import os print (os.path.dirname(__file__)) print (os.path.abspath(__file__)) print (os.p ...

  8. android常见错误之 No resource found that matches the given name

    新手上路,还希望大神多多照顾,刚自学android,遇到很多困难.其中就有这个问题,不知道你们遇到过没有,反正我是很头痛. No resource found that matches the giv ...

  9. Segment fault 常见原因

    [https://blog.csdn.net/qq_22238021/article/details/79872978] 本质原因在于:程序访问了非法的地址 1.引用空指针 2.野指针 3.访问越界 ...

  10. Fiddler添加过滤条件