跳至内容

核技巧详解:SVM 如何学习非线性模式

一份关于核技巧的概念指南——它是什么、如何赋能 SVM 与其他核方法,以及在何时优先于其他非线性建模方法使用。
更新 2026年5月4日  · 12分钟

线性模型简单直观,但一旦数据不可线性分割,它们就会失效。

而大多数真实世界的数据确实如此。无论您如何调权重,直线分界都不合适——类别要么重叠,要么呈现出任何直线都无法无误划分的模式。如果您知道模型对任务来说过于简单,但又不想直接跳到神经网络,还有一个不错的折中方案。

支持向量机提供了一个“技巧”。您可以把数据投影到更高维的空间,原来看起来不可分的,往往就能被分开。核技巧是一种计算捷径,它让像 SVM 这样的基于核的模型在不显式进行变换的情况下,仿佛数据已被变换过一样工作。

在本文中,您将准确了解核技巧在 SVM 内部如何工作、应了解哪些核函数,以及何时值得采用核方法。

但 SVM 究竟是什么?阅读我们的博文 使用 Scikit-learn 的支持向量机,全面了解该算法及其应用。

什么是核技巧?

核技巧是一种在高维特征空间中计算内积而无需显式映射数据到该空间的方法。

也就是说,您并没有真的去变换数据点再对它们做运算。您是在计算如果那样做会得到什么结果,使用的是直接作用于原始输入的核函数。

需要记住的是,核技巧只适用于依赖数据点之间点积的模型。它不是通用的机器学习技术。如果一个模型在内部并不使用点积,核技巧就不适用。大多数模型并不用它。

SVM、高斯过程和核 PCA 是核技巧可用的几个典型例子。但不要让任何人告诉您这是“多数机器学习模型都会用”的东西。

核技巧存在的原因

线性模型只能学习线性决策边界。这是它们的硬约束,也是让它们易于理解和解释的原因。

但大多数真实世界的数据集并不可线性分割。不存在一条直线(或超平面)能干净地把类别划分开。不过借助核技巧,如果把数据投影到更高维空间,同样的数据就可能变得可分。

显而易见的做法是通过创建新特征来显式变换数据,把每个点映射到高维空间,然后在此基础上训练模型。这样做有效,但代价随之增长。如果映射到成千上万维的空间,存储和计算这些变换后的向量会很昂贵。

借助核技巧,您无需为每个数据点计算完整的变换 φ(x),而是计算 K(x, x′)——一种能直接给出相同内积结果的核函数。

支持向量机中的核技巧

SVM 会找到最大化两类之间间隔的决策边界。

为找到该边界,SVM 要解一个优化问题。在其对偶形式中,优化仅依赖数据点之间的点积,而非数据点本身。对偶目标函数如下所示:

对偶目标函数

对偶目标函数

其中,α_i 是学得的权重,y_i 是类别标签,⟨x_i, x_j⟩ 是两个数据点的点积。SVM 只需要数据点之间的成对相似度。

如果 SVM 只需要点积,您就不必提供在原始空间中计算的点积。可以将 ⟨x_i, x_j⟩ 替换为核函数 K(x_i, x_j)

带核函数的公式

带核函数的公式

SVM 的运行方式完全相同。它只是假定自己正在更丰富的特征空间中工作。

这正是核技巧的全部要义。

核技巧如何工作(概念视角)

常规做法是定义一个映射 φ(x),将每个数据点变换到更高维空间,然后在该空间中计算点积:

映射

映射

但显式计算 φ(x) 可能代价高昂,且在某些情况下,映射后的空间维度可能以千计,甚至是无限维。

核技巧跳过了这一步。

与其先计算 φ(x) 再取点积,不如直接计算 K(x, x′)——一个满足以下关系的核函数:

核函数计算

核函数计算

结果相同,但代价更低。

K(x, x′) 想象成一个相似度函数。它接收原始空间中的两个数据点,并返回一个反映它们相似性的数值——这种相似性对应于在更丰富空间中的比较。模型的行为就像数据被变换过,但实际上并没有。

常见核函数

并非所有核函数都一样。每种核函数都定义了数据点之间不同的相似性概念,这意味着各自对应着不同类型的决策边界。下面举几个例子。

线性核

线性核

线性核

线性核就是标准点积。模型停留在原始特征空间,学习线性边界,与标准线性 SVM 等价。

当数据已可线性分割时使用该核。它是速度最快、最易解释的选择。

多项式核

多项式核

多项式核

其中 c 为常数,d 为多项式次数。

多项式核可以捕捉特征之间的交互。例如,二次核会考虑所有成对特征组合。这样,模型无需您手动创建这些交互项就能学习到弯曲的边界。

次数越高,边界越具表现力,但过拟合风险也越大。

RBF(高斯)核

RBF 核

RBF 核

RBF(径向基函数)核是实践中最常用的核。它基于距离来度量相似度。彼此接近的两个点得分高,距离远的两个点得分接近于零。

它有趣之处在于,它隐式地把数据映射到一个无限维的空间。这使其足够灵活,能够理解其他核无法处理的复杂非线性边界。

Sigmoid 核

Sigmoid 核

Sigmoid 核

Sigmoid 核的使用频率低于 RBF 或多项式核,且在某些参数选择下并不总是满足有效核函数所需的数学条件。

它偶尔出现在较早的文献中,但在实践中,RBF 几乎总是更好的起点。

SVM 之外的核技巧

SVM 是核技巧最常见的算法,但并非唯一。

还有一些模型也使用同样的思想:

  • 核岭回归 在更高维空间中应用岭回归,用核函数代替显式特征
  • 高斯过程 使用核函数来定义数据点之间的协方差。核函数编码了您要学习的函数的光滑性与形状等先验假设
  • 核 PCA 将标准 PCA 扩展到非线性结构,在变换的特征空间中寻找主成分

它们的共同点是,模型只需要点积,因此您可以替换为核函数,在不改变其余数学形式的情况下获得非线性行为。

但 SVM 仍是最清晰的例子,也是建立直觉的最佳起点。

核技巧 vs. 特征工程

两种方法都在解决同一个问题:您的特征不够有表现力。但它们的解法不同。

通过特征工程,您会从现有特征显式创建新特征。您决定哪些组合重要,计算它们,把它们加入数据集,然后在扩展的特征集上进行训练。您能清楚看到模型用到了什么。

核技巧则是在更高维空间中隐式运行,您无需定义或存储这些额外特征。变换由核函数来描述。

权衡归结为可解释性与灵活性。

特征工程保持透明,因为您知道每个特征代表什么。核技巧则提供更强的表达能力,但隐式特征空间往往难以审查或解释。

如果可解释性对您的用例很重要,特征工程更稳妥。如果您需要理解复杂模式且不必解释模型的每一个决策,核技巧会更快达成目标。

核技巧的优势

最显著的优势在于,它让线性模型也能学习非线性边界。没有它,SVM 只能用直的超平面分隔类别;有了它,同一个模型可以处理弯曲、复杂的决策边界。

它还避免了显式高维计算的代价。您获得了更丰富特征空间的表达能力,而无需存储或计算那些额外维度。对于隐式特征空间有成千上万甚至无限维的问题而言,这恰恰是让该方法可行的关键。

核方法也常在中等规模数据集上表现良好。当样本量不是以百万计、但数据又不可线性分割时,使用合适核函数的 SVM 往往是稳妥可靠的选择。

核技巧的局限

最大的问题是规模。训练核 SVM 需要为每一对数据点计算 K(x_i, x_j)。这是一个 O(n²) 的操作——考虑内存后情况更糟。在大型数据集上,这会成为硬性瓶颈。

核的选择也并不简单。RBF 是不错的默认选项,但并非总是最佳。选错核——或为某个核选错超参数——可能会让性能比起点还差。

可解释性是另一个问题。通过特征工程,您知道每个特征的含义。用核技巧时,隐式特征空间并不清晰。模型能工作,但要解释为什么做出某个具体决策很难。

而在许多领域,深度学习已经占据主导。神经网络能处理大规模数据,学习自己的特征表示,且往往无需手动选择核就能优于核方法。对图像分类、NLP 或任何拥有海量数据的任务而言,核方法已很少成为首选。

何时使用核方法

到了 2026 年,核方法并未过时,但它们比过去更为专用化。

当出现以下情况时,您应选择核方法,例如带 RBF 核的 SVM:

  • 您的数据具有非线性结构,线性模型无法理解
  • 您的数据集规模为小到中等——以数千样本计,而非数百万
  • 您不需要解释单个预测,因此可以接受较低的可解释性这一权衡

它们很适合结构化、表格型数据的问题,当数据有限且需要在不大量调参的情况下获得良好泛化时,在这些场景下,核 SVM 仍可能优于更复杂的模型。

但如果数据集很大,或您需要可解释的预测,核方法就不是最佳方案。

示例:带核与不带核的 SVM

观察线性 SVM 失败、再用核把它修好,是理解核技巧最好的方式。

在下面的例子中,您会看到一个简单数据集由两个同心圆组成:一类形成内环,另一类形成外环。不存在能把它们分开的直线。线性 SVM 每次都会失败。

使用 RBF 核后,同一个 SVM 会画出一个圆形边界将类别分开。唯一改变的是核函数。

完整示例如下:

import numpy as np
import matplotlib.pyplot as plt
from sklearn.svm import SVC
from sklearn.datasets import make_circles

# Generate concentric circles dataset
np.random.seed(42)
X, y = make_circles(n_samples=300, noise=0.1, factor=0.4)

# Train both SVMs
svm_linear = SVC(kernel="linear", C=1)
svm_rbf = SVC(kernel="rbf", C=1, gamma="scale")
svm_linear.fit(X, y)
svm_rbf.fit(X, y)

print(f"Linear SVM accuracy: {svm_linear.score(X, y):.0%}")
print(f"RBF SVM accuracy:    {svm_rbf.score(X, y):.0%}")

线性 SVM 与 RBF SVM 的准确率对比

线性 SVM 与 RBF SVM 的准确率对比

线性 SVM 会在数据中间画一条直边界,把平面一分为二,这与问题的真实结构完全不符。相比之下,RBF 核会产生一个沿着数据形状的圆形边界。

线性 SVM 与 RBF SVM 的可视化对比

线性 SVM 与 RBF SVM 的可视化对比

总之,模型并未学到更复杂的结构——它只是运行在一个更容易发现该结构的空间中。

关于核技巧的常见误解

关于核技巧有几个常见误解,出现得足够频繁,下面一并澄清。

“核技巧适用于所有模型。” 并不是。核技巧只适用于在优化中依赖数据点间点积的模型。大多数模型——决策树、随机森林、神经网络、线性回归——并不会以这种方式使用点积,因此核技巧对它们不适用。

“它会真实地变换数据。” 不会显式地。原始数据点保持不变。核函数计算的是在更高维空间中点积会是什么值,但实际上并没有发生变换。数据既未扩展,也未以不同方式存储。

“它总能提升性能。” 要看情况。在具有非线性且样本量为小到中等的问题上,好的核能带来改观。在大型数据集上,计算成本往往超过收益。而如果您的数据本就线性可分,引入核只会增加复杂度。

为什么核技巧仍然重要

核技巧并非当前机器学习中最热的话题。深度学习在多数基准上名列前茅,核方法鲜少出现。

但它依然是值得理解的基础概念。

SVM 与核技巧在经典机器学习中占据中心位置,因为它们在样本有限的结构化、表格型数据上表现良好,并且其背后的数学干净且易于理解。如果您想理解基于相似度的学习是如何工作的,或者点积为何在优化中重要,核技巧是最清晰的学习例子之一。

它也仍有实际用途。小数据集、生物信息学等专业领域,或用手工特征进行文本分类的问题,以及在数据不多的情况下需要良好泛化的任务——这些都是核方法仍具相关性的场景。

在那些规模和原始数据量最重要的领域,核确实被替代了。但在合适的语境中,它仍是一件好工具。

结语

核技巧解决了一个特定问题:如何让只会处理点积的模型表现出非线性行为。答案是用能在更丰富特征空间中计算出相同结果的核函数来替换这些点积——而无需真的去到那个空间。

在 SVM 的语境中理解它最有帮助,因为对偶形式使这种替换清晰而直接。一旦您对这一点感到熟悉,更广泛的核方法家族也会变得更容易理解。

当下深度学习更受关注,对大规模问题而言,这很合理。但核技巧代表着另一种思维方式——基于几何与相似性。值得理解,除非您在某些专业领域工作,否则在实践中您很少会用到它。

但深度学习究竟为何后来居上?报名我们的Python 深度学习路径,了解神经网络如何让您在规模化场景下构建复杂模型。

FAQs

用大白话解释,什么是核技巧?

核技巧是一种计算捷径,它让某些模型(如 SVM)无需显式将数据变换到更高维空间,也能学习非线性模式。核函数不会直接计算这种变换,而是计算在该空间中两个数据点点积会是多少。您因此获得更丰富特征空间的表达能力,而无需承担真的去到那个空间的计算成本。

哪些机器学习模型会用到核技巧?

核技巧只适用于在优化中依赖点积的模型。SVM 是最常见的例子,但核岭回归、高斯过程与核 PCA 也会用到。大多数现代模型不会以这种方式使用点积,因此核技巧对它们不适用。

到了 2026 年,核技巧还相关吗?

在大规模问题上,深度学习基本已经接管。但在小到中等规模数据集、结构化表格数据,以及生物信息学或使用手工特征的文本分类等专业领域,核方法仍然经得起考验。理解核技巧还能让您形成更清晰的相似度学习心智模型,这种理解远不止于 SVM 本身。

RBF 核与线性核有什么区别?

线性核计算的就是标准点积,产生线性决策边界——等价于训练一个不使用任何核的 SVM。RBF(径向基函数)核则基于点之间的距离来度量相似度,隐式地把数据映射到一个无限维空间。这让 RBF 更适合非线性问题,因此在不确定使用哪种核时,它常作为默认选择。

为什么核技巧在大数据集上扩展性差?

训练核 SVM 需要为训练集中每一对数据点计算 K(x_i, x_j)。这是一个 O(n²) 的操作。内存同样按这个规模增长,因为需要存储完整的核矩阵。这就是为什么在几十万样本或更大的数据集上很少使用核方法。

主题

与 DataCamp 一起学习

Courses

Support Vector Machines in R

4小时
11K
This course will introduce the support vector machine (SVM) using an intuitive, visual approach.
查看详情Right Arrow
开始课程
查看更多Right Arrow