高斯径向基核(RBF):从数学到调参实战

聊到核函数,RBF 核绝对是个绕不开的角色。我入行那会儿,第一次接触 SVM,导师就扔给我一句:「RBF 核,默认首选。」当时我还不理解,后来踩了不少坑,才慢慢摸清它的脾气。

说白了,RBF 核就是把数据映射到无穷维空间。你想想看,一个简单的参数 σ,就能控制整个模型的生死。嗯,今天我们就把它彻底讲透。

RBF 核的数学表达

先看公式,别怕,很简洁:

K(x, y) = exp(-||x - y||² / (2σ²))

其中:

  • x, y:两个样本点
  • ||x - y||²:欧氏距离的平方
  • σ:带宽参数(也叫尺度参数)

这个公式在干什么?它计算两个样本的「相似度」。距离越近,输出值越接近 1;距离越远,输出值趋近于 0。我习惯把它想象成一个「高斯钟」——以每个样本为中心,向四周扩散。

核心直觉:RBF 核的本质是「局部相似性度量」。它只关心离得近的点,离得远的直接忽略。

带宽参数 σ 的影响

σ 是 RBF 核的灵魂。我见过太多人调参时乱试,其实理解了 σ 的物理意义,调参就有方向了。

σ 控制的是「高斯钟的宽度」:

  • σ 很小:钟很尖,只有距离极近的点才被认为相似。模型变得「敏感」,容易过拟合。
  • σ 很大:钟很平,距离较远的点也被认为相似。模型变得「迟钝」,容易欠拟合。

举个例子。我在做手写数字识别时,σ 设成 0.1,训练集准确率 99%,测试集直接掉到 70%。为什么?因为每个数字的微小变形都被当成了新类别。后来我把 σ 调到 1.0,测试集稳定在 92%。

我的经验:σ 的初始值可以设为特征维度的中位数距离。比如特征有 100 维,先算所有样本对的距离,取中位数作为 σ 起点。

RBF 核的过拟合与欠拟合

过拟合和欠拟合,说白了就是 σ 没选对。我画个图帮你理解:

σ 对决策边界的影响 σ 过小(过拟合) σ 适中 σ 过大(欠拟合) 类别 A 类别 B

从上图你能直观看到:

  • σ 过小:决策边界弯弯曲曲,把噪声也学进去了。训练集表现好,但泛化差。
  • σ 过大:决策边界几乎是一条直线,欠拟合。训练集和测试集都表现差。
  • σ 适中:边界平滑且合理,泛化能力最强。

避坑指南:我曾经在一个高维稀疏数据集上直接用 RBF 核,结果模型完全失效。后来发现,高维空间里样本距离普遍很大,RBF 核的输出几乎全为 0。这种情况下,建议先用线性核试试。

如何选择 σ?

调参没有银弹,但我有个实用套路:

  1. 网格搜索 + 交叉验证:在 [0.01, 0.1, 1, 10, 100] 这个量级上试。我一般用 5 折交叉验证。
  2. 观察学习曲线:如果训练集准确率远高于验证集,说明 σ 太小;如果两者都低,说明 σ 太大。
  3. 结合数据量:数据量少时,σ 适当大一点,防止过拟合;数据量大时,σ 可以小一点,捕捉细节。

一句话总结:RBF 核是「局部王者」,σ 是它的「视野半径」。调好 σ,你就掌握了 RBF 核的精髓。

好了,RBF 核的核心内容就这些。记住,理论是基础,实践才是检验真理的唯一标准。下次你调 SVM 时,不妨多试试不同的 σ,感受一下模型的变化。

小技巧:如果你用 scikit-learn,可以试试 GridSearchCV 自动调参。我习惯把 gamma(即 1/(2σ²))的搜索范围设为 [0.001, 0.01, 0.1, 1, 10]。

想要更多资料,联系可可