SVM 常见的核函数有哪些?RBF 核怎么选?参数 γ 起什么作用?
简化版
SVM 常见核函数包括线性核、多项式核、RBF(高斯)核和较少使用的 sigmoid 核。线性核适合先做可扩展基线,尤其是高维稀疏数据;RBF 能表达局部非线性,但训练与预测成本随样本和支持向量增长,不能无条件称为默认最优。RBF 的 γ 控制相似度衰减尺度:γ 较大时作用更局部、复杂度通常更高,γ 较小时边界通常更平滑。核选择、特征缩放、C 和 γ 必须放进同一交叉验证流水线,并结合样本规模与预测延迟选择。
详细版
常见核函数:
| 核 | 公式 | 特点 | 适用 |
|---|---|---|---|
| 线性核 | K = xᵀz | 不升维、快、可解释 | 高维稀疏、线性可分(文本) |
| 多项式核 | K = (γ·xᵀz + r)^d | 表达特征交叉,参数多(d,γ,r) | 有明确多项式关系 |
| RBF/高斯核 | K = exp(-γ‖x-z‖²) | 无穷维、按距离度量相似 | 中小规模非线性候选 |
| sigmoid 核 | K = tanh(γ·xᵀz + r) | 类神经网络、非总合法核 | 少用 |
RBF 核的 γ:
K(x,z) = exp(-γ‖x-z‖²)
- 两样本越近 K 越接近 1(相似),越远越接近 0。
- γ 大 → 只有非常近的样本才算相似 → 影响范围小 → 边界复杂弯曲 → 过拟合。
- γ 小 → 较远样本也算相似 → 影响范围大 → 边界平滑 → 欠拟合。
选核经验: 线性可分或高维稀疏用线性核;非线性、拿不准用 RBF;C(容错)与 γ(弯曲度)联合网格搜索 + 交叉验证。
完整版教学
一、核函数的作用回顾
核函数 K(x,z)=φ(x)·φ(z) 让 SVM 隐式地在高维空间找线性边界,从而处理原空间的非线性。换不同的核,就是换不同的高维映射,也就换出不同形状的决策边界。 所以「选核」本质是「选一族能匹配数据结构的非线性边界」。
二、线性核:不升维,专治高维稀疏
K(x, z) = xᵀz
线性核就是原始内积,不做任何升维,等价于普通的线性 SVM。它的价值在于:
- 高维稀疏数据(如文本 TF-IDF、One-Hot 后的特征)本身在原空间就大概率线性可分,无需再升维,用 RBF 反而慢又易过拟合。
- 快、可扩展:不用算复杂核,能处理大规模数据。
- 可解释:有显式的 w,能看特征权重。
经验法则:特征数远大于样本数、或数据本就近似线性可分 → 首选线性核。 文本分类是线性核的经典战场。
三、多项式核:显式表达特征交叉
K(x, z) = (γ·xᵀz + r)^d
多项式核能表达到 d 阶的特征交互。齐次形式 (γxᵀz)^d 对应恰好 d 次项;带非零常数 r 的非齐次形式 (γxᵀz+r)^d 才会展开出 0 到 d 次项,不能一概说成“所有次数 ≤d”。
- 参数多:d(阶数)、γ(缩放)、r(常数项),调起来麻烦。
- d 越大表达力越强但越易过拟合、数值也可能不稳定(大数幂)。
- 适合已知数据有明确多项式/交叉结构的场景,实践中不如 RBF 通用。
四、RBF(高斯)核:最通用的默认选择
K(x, z) = exp(-γ‖x - z‖²)
RBF 核按两个样本之间的距离衡量相似度:距离越近,K 越接近 1(很相似);距离越远,K 越接近 0(不相似)。它把样本映射到无穷维空间(泰勒展开有无穷项),表达能力极强,能拟合各种复杂的非线性边界。
为什么它常被列为非线性基线候选:
- 表达力强:在适当条件下具有通用逼近性质,但有限样本下的效果仍由 C、γ、缩放和数据分布决定。
- 只有一个核参数 γ(加上 C),比多项式核好调。
- 实践中大多数非线性问题上表现稳健。
经验法则:先跑线性基线;中小规模且线性效果不足时,再把 RBF 放入候选。大样本上还要评估核矩阵训练成本和支持向量预测延迟。
五、RBF 的关键参数 γ——控制「影响范围」和「弯曲程度」
γ 是 RBF 最重要的参数,理解它就理解了 RBF 的过拟合/欠拟合行为。
K=exp(-γ‖x-z‖²),γ 控制「距离多远还算相似」:
- γ 大:
γ‖x-z‖²增长快,只有非常接近的样本 K 才不接近 0 → 每个样本的影响范围很小、很「局部」 → 决策边界为了迁就每个点变得极其弯曲复杂 → 过拟合(训练好、测试差)。极端时每个支持向量只管自己附近,退化成「记住训练点」。 - γ 小:远处样本也还算相似 → 每个样本影响范围大、很「全局」 → 决策边界平滑 → 可能欠拟合(连训练集都拟合不好,趋近线性)。
γ 大 → 影响范围小 → 边界复杂弯曲 → 过拟合(方差大)
γ 小 → 影响范围大 → 边界平滑 → 欠拟合(偏差大)
六、C 和 γ 一起调——网格搜索 + 交叉验证
RBF-SVM 有两个关键超参数,作用不同但都影响过拟合,要联合调:
- C(软间隔容错):C 大→不容错、间隔窄→过拟合;C 小→容错、间隔宽→欠拟合。
- γ(RBF 边界弯曲度):γ 大→边界复杂→过拟合;γ 小→边界平滑→欠拟合。
标准做法是网格搜索(Grid Search)+ 交叉验证:在 C ∈ {0.1,1,10,100…}、γ ∈ {0.001,0.01,0.1,1…} 的组合上交叉验证,选验证集最好的组合。两者常有交互,不能只调一个。
七、sigmoid 核与选核总结
- sigmoid 核
tanh(γxᵀz+r):形式像神经网络的激活,但在某些参数下不满足 Mercer 条件(不是合法核),实践中很少用。 - 选核决策:
数据线性可分 / 高维稀疏(文本)→ 线性核
中小规模且线性不足 → 验证 RBF
已知明确多项式/交叉结构 → 多项式核
样本量巨大 → 线性核(RBF 训练太慢)
别忘了 RBF/多项式核对特征缩放极敏感(核里有距离/内积),通常应在训练集上拟合缩放器,再对验证集和测试集做同样变换。
八、用算例与工程边界复核
RBF 核 K(x,z)=exp(-γ||x-z||²)。当距离平方为 4 时,γ=0.1 得 e^-0.4≈0.670,γ=1 得 e^-4≈0.018;γ 越大,单个样本影响范围越窄,边界更弯曲且过拟合风险更高。
| 对象/方案 | 核心机制 | 选择或风险 |
|---|---|---|
| 线性核 | xᵀz | 高维稀疏或近线性 |
| 多项式核 | (γxᵀz+r)^d | 指定阶交互但参数敏感 |
| RBF | exp(-γ |
把推导和选择压缩成执行路径:
scale features
-> linear baseline
-> CV search C and γ
-> inspect score, SV count and latency
scikit-learn 的
gamma=scale只是数据相关默认值,不是理论最优值;正式模型仍应在合法验证流程中调参。
九、常见误区与追问
- 误区:γ 越大,核函数越平滑。 γ 大使相似度随距离更快衰减,模型边界通常更局部、更复杂。
- 误区:RBF 总比线性核准确。 高维稀疏和近线性任务中线性核常更快且泛化更好。
- 追问:C 和 γ 如何联动? 大 C 与大 γ 都可能提高复杂度,应联合交叉验证而非分别拍定。
- 追问:Sigmoid 核一定满足 Mercer 条件吗? 只在部分参数范围内是合法 PSD 核,不能任意设置。
- 追问:多项式 degree 越高越好吗? 高阶扩大表达力也放大数值和过拟合风险,通常从低阶验证。
十、加强记忆
线性核适合高维稀疏和大样本基线;多项式核表达指定阶交互,齐次与非齐次形式对应的次数范围不同;RBF 按距离定义相似度,γ 大时更局部、γ 小时更平滑,但过拟合与欠拟合是常见趋势而非单参数定律;sigmoid 核只在部分参数下合法。实践应先在训练折内缩放,再联合搜索核、C、γ,并同时检查验证指标、支持向量数、训练资源和线上延迟。