核函数:RBF 是如何让线性 SVM 可以分类非线性数据的?

简介: 如果原始空间是有限维,即属性数有限,那么一定存在一个高维特征空间使得样本可分。

核函数:RBF 是如何让线性 SVM 可以分类非线性数据的?

1. 线性支持向量机

支持向量机的思想就是给定训练样本集 $D$,在样本空间中找到一个划分的超平面,例如下图:
在这里插入图片描述

但如果遇到某一些数据,并没有这么容易可以用一个平面分隔开,像如下的环形数据

alt

现实中非线性的数据还是很多数的,而解非线性问题要远比线性问题复杂得多,花费的资源也会成倍的增加,为此我们使用了核技巧(kernel trick)

2. 核函数

如果原始空间是有限维,即属性数有限,那么一定存在一个高维特征空间使得样本可分。1

简单地讲,就是把数据映射到一个更加高维的空间,让数据在此高维空间上的映射线性可分。文字可能不太容易懂,看图的话,我们会比较直观。

还是如上面的环形数据,利用了核函数映射后在三维空间上的分布,如下图所示:

在这里插入图片描述

利用 scikit-learn 计算的关于原点 (0, 0) 的 RBF(高斯)映射,结尾会附上代码。

不难看出,在这个三维空间上的点,能够简单的用一个平面就分隔开,这样就避免了解非线性问题。

2.1. 径向基函数(Radial Basis Function)

所谓径向基函数,就是某种沿径向对称的标量函数。 通常定义为空间中任一点 $x$ 到某一中心 $x_c$ 之间欧氏距离的单调函数。$x$ 越远离中心,函数的取值就越小。2

一般 RBF 核又指高斯核,其形式为:

$$ \kappa(\boldsymbol{x}_i,\boldsymbol{x}_j)=\mathrm{exp}\left(- \frac{\left\|\boldsymbol{x}_i-\boldsymbol{x}_j\right\|^2}{2\sigma^2}\right ) $$

其中 $\sigma \gt 0$ 为高斯核的带宽(其实意义与高斯分布的差不多),$\boldsymbol{x}_i$ 就是第 $i$ 个数据。

2.2. 计算核函数

计算核函数可以使用 sklearn 的 sklearn.metrics.pairwise.rbf_kernel 来计算:(具体的代码,可以在我的 Github 上下载,如果对你有帮助,希望可以给我个 star。)

>>> from sklearn.metrics import pairwise

>>> # draw circles data
>>> X, y = make_circles(100, factor=.1, noise=.1)
>>> # calculate the rbf (gaussian) kernel between X and (0, 0)
>>> K = pairwise.rbf_kernel(X, np.array([[0, 0]]))
>>> print(K)
[[0.58581766]
 [0.74202632]
...
 [0.63660304]
 [0.98952965]]

利用这种变换,我们就可以用 SVM 在数据之间找到一个可以把两个类别区分开来的平面了:

在这里插入图片描述


  1. 《机器学习》周志华,第 6 章 支持向量机,6.3 核函数
  2. 百度百科,高斯核函数
目录
相关文章
|
机器学习/深度学习 存储 算法
使用Python从零实现多分类SVM
本文将首先简要概述支持向量机及其训练和推理方程,然后将其转换为代码以开发支持向量机模型。之后然后将其扩展成多分类的场景,并通过使用Sci-kit Learn测试我们的模型来结束。
524 0
|
前端开发 图形学
Pixi绘制带箭头的线
这篇文章讲解了如何使用Pixi.js来绘制带有箭头的线条,并提供了绘制箭头的具体实现方法和技术细节。
219 4
Pixi绘制带箭头的线
|
机器学习/深度学习 人工智能 文字识别
香橙派——雕琢智能时代的瑰宝为AI而生(二)
香橙派——雕琢智能时代的瑰宝为AI而生(二)
1145 2
|
8月前
|
机器学习/深度学习 人工智能 机器人
看过智谱现场演示,我觉得AI要开始卷“动手能力”了
2025年,AI Agent或成科技焦点。智谱在3月31日发布AutoGLM沉思,作为全球首个深度研究与操作兼备的Agent,无需邀请码即可免费使用。它能像人一样思考、感知和使用工具,完成复杂任务如写稿投稿、制定旅行计划等。基于自研模型GLM-4-Air-0414及推理模型GLM-Z1-Air,AutoGLM沉思实现低成本高效率,推动AI从被动响应走向主动执行。其开源计划将进一步加速AI Agent在各行业的应用落地,标志着“AI Agent元年”从口号变为现实。
267 0
|
11月前
|
编解码 算法 数据安全/隐私保护
基于BP译码的LDPC误码率matlab仿真,分析不同码长,码率,迭代次数以及信道类型对译码性能的影响
本内容介绍基于MATLAB 2022a的低密度奇偶校验码(LDPC)仿真,展示了完整的无水印仿真结果。LDPC是一种逼近香农限的信道编码技术,广泛应用于现代通信系统。BP译码算法通过Tanner图上的消息传递实现高效译码。仿真程序涵盖了不同Eb/N0下的误码率计算,并分析了码长、码率、迭代次数和信道类型对译码性能的影响。核心代码实现了LDPC编码、BPSK调制、高斯信道传输及BP译码过程,最终绘制误码率曲线并保存数据。 字符数:239
619 5
|
机器学习/深度学习 数据采集 自然语言处理
利用机器学习进行文本情感分析
【10月更文挑战第4天】本文将介绍如何使用机器学习技术对文本进行情感分析,包括预处理、特征提取、模型训练和结果评估等步骤。我们将使用Python编程语言和scikit-learn库来实现一个简单的情感分析模型,并对模型的性能进行评估。
|
数据处理 开发者 Python
【Python】已解决:ValueError: Length mismatch: Expected axis has 5 elements, new values have 4 elements
【Python】已解决:ValueError: Length mismatch: Expected axis has 5 elements, new values have 4 elements
1375 9
|
传感器 监控 物联网
贴片卡与插拔卡
贴片卡(也称为嵌入式SIM卡或eSIM)和插拔卡(传统SIM卡)在无线通信领域中各有其适用场景和操作方式。
|
机器学习/深度学习 算法
支持向量机(SVM): 从理论到实践的指南(1)
SVM专注于为二分类问题找到最佳决策边界,即超平面,该平面能最大化两类数据之间的空隙或间隔。线性SVM假设用一个直线(或高维空间中的超平面)足以有效地分隔数据。当遇到重叠或杂乱无章散布的数据时,软间隔SVM允许某些点位于错误的边界一侧,这通过引入松弛变量与罚项系数C来实现,从而提供一个稳健的平衡方案。
|
机器学习/深度学习 人工智能 监控
生成式 AI 与 LangCHain(二)(4)
生成式 AI 与 LangCHain(二)
631 5