0Pricing
Learn AI with Python · 课时

核技巧:RBF、多项式与 Sigmoid

核函数为何有效、RBF 核的 gamma 参数,以及如何根据不同数据形状选择核函数。

核技巧:RBF、多项式与 Sigmoid 是 CoddyKit 上的免费 Learn AI with Python 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Learn AI with Python 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Learn AI with Python 课程共包含 4 节课。

直线不够用时

线性 SVM 只能绘制直线边界。许多数据集并非线性可分,例如一个类别的圆形区域被另一个类别包围时,就无法用一条直线将它们分开。核技巧可以解决这个问题。

映射到更高维空间

如果数据在原始空间中不可分,将其投影到更高维的空间可能会使其变得可分。二维空间中的曲线在三维空间中可能变成平面。

核技巧

核技巧会计算点之间的相似度K(x, z),仿佛它们已经映射到高维空间中一样,却完全不执行代价高昂的映射。这使非线性 SVM 更加高效。

什么是核函数

核K(x, z)是一个函数,返回某个高维特征空间中 x 与 z 的点积。不同的核意味着不同的特征映射和边界形状。

RBF 核

RBF(高斯)核是最常用的默认选项:K(x, z) = exp(-gamma * ||x - z||^2)。它会计算随距离增大而衰减的相似度,从而支持灵活的曲线边界。

from sklearn.svm import SVC

model = SVC(kernel="rbf", gamma="scale", C=1.0)
model.fit(X, y)

gamma 参数

gamma控制 RBF 的宽度。较大的 gamma意味着每个点的影响范围较窄,从而产生可能过拟合的曲折边界。较小的 gamma意味着影响范围较宽,边界也更平滑。

from sklearn.svm import SVC

wiggly = SVC(kernel="rbf", gamma=10)    # tight, can overfit
smooth = SVC(kernel="rbf", gamma=0.01)  # broad, may underfit

gamma 与 C 的配合

RBF SVM 同时取决于gamma(边界灵活性)和C(错误容忍度)。二者会相互作用,因此通常需要使用网格搜索联合调整。

from sklearn.model_selection import GridSearchCV
from sklearn.svm import SVC

param = {"C": [0.1, 1, 10], "gamma": [0.01, 0.1, 1]}
gs = GridSearchCV(SVC(kernel="rbf"), param, cv=5)
gs.fit(X, y)

多项式核

多项式核K(x, z) = (gamma * x . z + r)^degree可以对达到指定阶数的交互进行建模。当您预期特征之间存在已知阶数的交互时,可以使用它。

from sklearn.svm import SVC

model = SVC(kernel="poly", degree=3, coef0=1, gamma="scale")
model.fit(X, y)

S 形核

S 形核K(x, z) = tanh(gamma * x . z + r)的行为类似于神经网络激活函数。它不太常见,也不一定是有效的核,因此很少作为首选。

from sklearn.svm import SVC

model = SVC(kernel="sigmoid", gamma="scale", coef0=0)

选择核函数

指南:

  • 线性用于高维或文本数据
  • RBF作为非线性数据的强大通用默认选项
  • 多项式用于已知阶数的交互很重要的情况
  • S 形很少使用,仅限特殊场景

始终缩放特征

RBF 等核依赖距离,因此特征尺度非常重要。在使用核 SVM 前,请始终对特征进行标准化,否则尺度较大的特征会主导相似度。

from sklearn.pipeline import make_pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.svm import SVC

pipe = make_pipeline(StandardScaler(), SVC(kernel="rbf"))
pipe.fit(X, y)

快速检查

请测试您对核的了解。

回顾

回顾:核技巧会在不执行映射的情况下,将K(x, z)计算为高维点积,从而实现非线性边界。RBF使用exp(-gamma * ||x-z||^2),其中较大的 gamma 会导致过拟合。多项式核可以捕获 d 阶交互。使用核 SVM 前,请始终缩放特征。

常见问题解答

「核技巧:RBF、多项式与 Sigmoid」课时是免费的吗?

是的 — 「核技巧:RBF、多项式与 Sigmoid」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Learn AI with Python 课程的其余内容,请升级到 CoddyKit PRO。 Learn AI with Python 课程共包含 4 节课。

「核技巧:RBF、多项式与 Sigmoid」这节课中我会学到什么?

核函数为何有效、RBF 核的 gamma 参数,以及如何根据不同数据形状选择核函数。 你通过在浏览器中直接运行的动手代码来练习 Learn AI with Python,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Learn AI with Python 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Learn AI with Python 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。

「核技巧:RBF、多项式与 Sigmoid」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Learn AI with Python 课中编写并运行代码吗?

能。每节 Learn AI with Python 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. SVM 理论:间隔与支持向量
  2. 核技巧:RBF、多项式与 Sigmoid
  3. 使用 sklearn 进行 SVM 分类
  4. 用于回归的 SVM(SVR)
← 返回 Learn AI with Python