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ᵢxⱼ)组成的空间,因此能表达特征之间的交互/组合。
- 参数多:d(阶数)、γ(缩放)、r(常数项),调起来麻烦。
- d 越大表达力越强但越易过拟合、数值也可能不稳定(大数幂)。
- 适合已知数据有明确多项式/交叉结构的场景,实践中不如 RBF 通用。
四、RBF(高斯)核:最通用的默认选择
K(x, z) = exp(-γ‖x - z‖²)
RBF 核按两个样本之间的距离衡量相似度:距离越近,K 越接近 1(很相似);距离越远,K 越接近 0(不相似)。它把样本映射到无穷维空间(泰勒展开有无穷项),表达能力极强,能拟合各种复杂的非线性边界。
为什么它是默认首选:
- 通用:几乎能逼近任意决策边界,对数据结构假设最少。
- 只有一个核参数 γ(加上 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 越高越好吗? 高阶扩大表达力也放大数值和过拟合风险,通常从低阶验证。
十、加强记忆
记忆时抓住这条主线:SVM 四类核:线性核 xᵀz(不升维、快、可解释,高维稀疏/线性可分如文本首选);多项式核 (γxᵀz+r)^d(表达特征交叉,参数多易过拟合);RBF/高斯核 exp(-γ‖x-z‖²)(按距离度量相似、无穷维、最通用,非线性默认首选);sigmoid 核(少用、未必合法)。RBF 的 γ 控制单样本影响范围/边界弯曲:γ 大→范围小、边界复杂→过拟合;γ 小→范围大、边界平滑→欠拟合。C 与 γ 联合网格搜索+交叉验证调(C 管容错、γ 管弯曲,都影响过拟合)。选核口诀:线性可分/高维稀疏用线性核,非线性拿不准用 RBF,样本巨大用线性核;核 SVM 通常要统一特征尺度,并把缩放放入交叉验证流水线。