SVM——核函数

article/2025/8/18 3:47:19

我们知道,SVM相对感知机而言,它可以解决线性不可分的问题,那么它是怎么解决的呢?它的解决思想很简单,就是对原始数据的维度变换,一般是扩维变换,使得原样本空间中的样本点线性不可分,但是在变维之后的空间中样本点是线性可分的,然后再变换后的高维空间中进行分类。

线性可分时:

42bcba47129a4358b8b0f86d622f8bae.png

 求的最终结果:

fd381d14eb4a4fde8594fe09bc195353.png

 其中表示任选的一个支持向量

当然这是线性可分的情况,那么如果问题本身是线性不可分的情况呢,那就是先扩维后再计算,计算形式是一样的:

48facaab3504408395dbdf8b62ab798f.png 其中192c4afa080e45df979930ec4ef51168.png表示原来的样本扩维后的坐标。

  从中可以看出,不管是不扩维的求解还是扩维的求解,在求解对偶问题的过程中都会用到各样本点的内积的结果,那么这时候问题来了,在很多情况下,扩维可能会吧原数据扩到很高维(甚至无穷维),这时候直接求内积是非常困难的,我们为了避免做这样的事就提出了核函数的概念。

核函数:任意两个样本点在扩维后的空间的内积,如果等于这两个样本点在原来空间经过一个函数后的输出,那么这个函数就叫核函数。

核函数它本质上隐含了从低维到高维的映射,从而避免直接计算高维的内积。

一般情况下,常用的几个核函数如下:

①线性核函数

2b01e9559572407e927c98d106be598c.png

②多项式核函数

d20b893c56144bb387f0c408606157cd.png

其中,γ,r,n都需要自己调参定义,比较麻烦。n默认是3,γ 默认为'auto',即1/特征维度,r默认为0.一般需要通过交叉验证选择一组合适的γ,r,n。

③高斯核函数(径像基核函数)

9703e56f106d41b3b044ea4f379f01b3.png

④拉普拉斯核函数:

a708f25ad3bf482fa3740d5c376a4fb3.png

⑤sigmoid核函数:

f07aef1e1ef04c659e920903712dcbdc.png

 一般情况下,对非线性数据使用默认的高斯核函数会有比较好的效果,如果你不是SVM调参高手的话,建议使用高斯核来做数据分析。

一般推荐在做训练之前对数据进行归一化,当然测试集中的数据也需要归一化。。

在特征数非常多的情况下,或者样本数远小于特征数的时候,使用线性核,效果已经很好,并且只需要选择惩罚系数C即可。

在选择核函数时,如果线性拟合不好,一般推荐使用默认的高斯核'rbf'。这时我们主要需要对惩罚系数C和核函数参数γ进行艰苦的调参,通过多轮的交叉验证选择合适的惩罚系数C和核函数参数γ。

理论上高斯核不会比线性核差,但是这个理论却建立在要花费更多的时间来调参上。如果调的不好,可能比线性核函数还要差。所以我们实际应用中,能用线性核函数得到较好效果的都会选择线性核函数。如果线性核不好,我们就需要使用RBF,在享受RBF对非线性数据的良好分类效果前,我们需要对主要的超参数进行选取。

 

 


http://chatgpt.dhexx.cn/article/W8Sqd29r.shtml

相关文章

SVM核函数概述

特征空间的隐式映射:核函数 咱们首先给出核函数的来头:在上文中,我们已经了解到了SVM处理线性可分的情况,而对于非线性的情况,SVM 的处理方法是选择一个核函数 κ(⋅,⋅) ,通过将数据映射到高维空间&#x…

聚类算法之核函数

一:监督学习与无监督学习 1,监督学习 监督学习就是人们常说的分类,通过训练已有样本得到一个最优模型,利用该模型将输入转化成输出,对输出进行判断,从而实现分类,也就是具有了对未知数据进行分类…

svm核函数的理解和选择

特征空间的隐式映射:核函数 咱们首先给出核函数的来头:在上文中,我们已经了解到了SVM处理线性可分的情况,而对于非线性的情况,SVM 的处理方法是选择一个核函数 κ(⋅,⋅) ,通过将数据映射到高维空间&#x…

matlab rbf核函数,四类核函数(Sigmoid+RBF)

Q:有个疑问就是,模型本身不是线性的,为什么一定要先用线性模型做? A:有核函数和泰勒展开等等,可以无限逼近转化成线性? 小知识: 1.Sigmoid函数,即f(x)=1/(1+e-x)。是神经元的非线性作用函数。广泛应用在神经网络中。又叫Logistic函数。 机器学习中一个重要的预测模型逻辑…

SVM的核函数详解

文章目录 1、核函数背景核函数正式定义 2、高斯核函数2.2 参数带宽 σ \sigma σ的影响2.3高斯核函数的实际意义 2、多项式核函数4、参考资料 1、核函数背景 本文为核函数进阶教程,希望看文章之前最好对核函数有一些最基本的了解,不然有些地方可能会看不…

常见核函数

这篇博文开始的例子就很好地揭示了核函数的简单原理,写得很好! 原地址:https://blog.csdn.net/zkq_1986/article/details/52448238 1 核函数K(kernel function)定义 核函数K(kernel function)就…

CUDA核函数

核函数是指在GPU端运行的代码,核函数内部主要干了什么?简而言之,就是规定GPU的各个线程访问哪个数据并执行什么计算。 文章目录 一、CUDA规范二、核函数内部线程的使用2.1 如何启动核函数 一、CUDA规范 编写核函数必须遵循CUDA规范&#xff…

SVM与核函数

文章目录 核技巧与SVM核函数本质线性可分的SVM与硬间隔最大化SVM对偶算法核技巧高斯核多种不同的核函数比较soft margin 问题核函数 核函数 核技巧与SVM SVM原本是用来解决二分类的分类模型 它和感知机不同的一点是它取到的分类器是在特征空间上的最大间隔的分类器 而为了解决…

核函数(核技巧)

核技巧Kernel trick 背景及含义: 对于 原始样本空间内或许不存在能正确划分两类样本的超平面 问题,考虑 将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分。 令 ϕ ( x ) \phi(x) ϕ(x)表示将x映射后的特征向量…

了解核函数

1、核函数定义: 核函数包括线性核函数、多项式核函数、高斯核函数等,其中高斯核函数最常用,可以将数据映射到无穷维,也叫做径向基函数(Radial Basis Function 简称 RBF),是某种沿径向对称的标量…

核函数

对于优化问题: 的求解需要计算这个内积,而如果输入样本线性不可分的话,我们采取的方法是通过函数映射将输入样本映射到另外一个高维空间并使其线性可分。 以库克定律为例(http://zh.wikipedia.org/zh-cn/%E9%9D%99%E7%94%B5%E5%8A%9B)&#x…

什么是核函数?如何理解?

个人理解,核函数的功能就是从低维度的空间向高维度空间转换的函数, 因为在低维空间不可以线性分类的问题到高维度空间就可以线性分类的。 其求法为 低维空间的点映射到高维空间的点后,两个点的内积 就是核函数。 ~~~~~~~~~~~~~~~~~~~~~~~~…

你知道什么是核函数吗

目录 一、常用核函数:二、核函数特点:三、选择核函数的方法:四、核函数方法实施步骤:五、核函数在模式识别中的应用:六、核函数方法原理: 核函数K(kernel function)就是指K(x, y) &…

kernel核函数是什么、用来干什么 及其详细推导

在说核函数之前,我们先说说映射及其作用. 如果在当前空间对数据类别不好使用线性函数进行划分,则通过一个函数φ( x)将数据点从当前空间映射到另一空间去(映射后的空间叫特征空间,通常是更高维的空间,当然不是绝对)以方…

核函数(Kernel function)(举例说明,通俗易懂)

已知有一组向量,可用线性函数去探索其是否具有线性关系,若数据之间是非线性呢? 非线性数据是指只有利用非线性模型才能更好的预测。但非线性问题往往不好求解,所以希望用解线性分类问题的方法解决这个问题。所采取的方法是进行一…

Linux笔记(5):库文件

1、库文件 库是一组预先编译好的方法的集合。 Linux系统存储的库的位置一般在/lib和/usr/lib。库的头文件一般被存储在/usr/include下货其子目录下。 库有两种: (1)静态库,命令规则:libxxx.a (2&#…

vs2019添加库文件

vs2019添加库文件 环境:windows10,64位,vs2019 vs安装路径:D:\visual_studio 需要的材料:头文件,编译好的库文件 方法一 以GLFW为例,找到IDE或者编译器的**/lib和/include文件夹&#xff0…

【Linux基础】静态库和共享库(如何自定义库文件?)

文章目录 前言一、库文件的基本知识1.库文件分类2.库文件命名 二、如何自定义静态库?1.静态库简介2.具体流程(详细步骤)3.静态库缺点 三、如何自定义共享库?1.共享库简介2.具体流程(详细步骤)3.共享库优点 四、静态库与共享库区…

Linux 系统上的库文件生成与使用

1.库文件 库是一组预先编译好的方法的集合。Linux系统存储的库的位置一般在:/lib 和 /usr/lib。 在 64 位的系统上有些库也可能被存储在/usr/lib64 下。库的头文件一般会被存储在 /usr/include 下或其子目录下。 库有两种,一种是静态库,其…

库文件、静态库(lib)与动态库(dll)的生成与使用

静态库 程序编译一般需经预处理、编译、汇编和链接几个步骤。在应用中,有一些公共代码是需要反复使用,就把这些代码编译为“库”文件;在链接步骤中,连接器将从库文件取得所需的代码,复制到生成的可执行文件中。这种库…