SVM 的核函数选择和调参


本文结构:
1. 什么是核函数
2. 都有哪些 & 如何选择
3. 调参


1. 什么是核函数

核函数形式 K(x, y) = <f(x), f(y)>,
其中 x, y  为 n 维,f 为 n 维到 m 维的映射,<f(x), f(y)> 表示内积。

在用SVM处理问题时,如果数据线性不可分,希望通过 将输入空间内线性不可分的数据 映射到 一个高维的特征空间内,使数据在特征空间内是线性可分的,这个映射记作 ϕ(x),

之后优化问题中就会有内积 ϕi⋅ϕj,
这个内积的计算维度会非常大,因此引入了核函数,
kernel 可以帮我们很快地做一些计算, 否则将需要在高维空间中进行计算。


2. 都有哪些 & 如何选择

下表列出了 9 种核函数以及它们的用处和公式,常用的为其中的前四个:linear,Polynomial,RBF,Sigmoid

核函数用处公式
linear kernel线性可分时,特征数量多时,样本数量多再补充一些特征时,linear kernel可以是RBF kernel的特殊情况
Polynomial kernelimage processing,参数比RBF多,取值范围是(0,inf)
Gaussian radial basis function (RBF)通用,线性不可分时,特征维数少 样本数量正常时,在没有先验知识时用,取值在[0,1]
Sigmoid kernel生成神经网络,在某些参数下和RBF很像,可能在某些参数下是无效的
Gaussian kernel通用,在没有先验知识时用
Laplace RBF kernel通用,在没有先验知识时用
Hyperbolic tangent kernelneural networks中用
Bessel function of the first kind Kernel可消除函数中的交叉项
ANOVA radial basis kernel回归问题
Linear splines kernel in one-dimensiontext categorization,回归问题,处理大型稀疏向量

其中 linear kernel 和 RBF kernel 在线性可分和不可分的对比可视化例子如下:


3. 调参

在 sklearn 中可以用 grid search 找到合适的 kernel,以及它们的 gamma,C 等参数,那么来看看各 kernel 主要调节的参数是哪些:

核函数公式调参
linear kernel
Polynomial kernel-d:多项式核函数的最高次项次数,-g:gamma参数,-r:核函数中的coef0
Gaussian radial basis function (RBF)-g:gamma参数,默认值是1/k
Sigmoid kernel-g:gamma参数,-r:核函数中的coef0

其中有两个重要的参数,即 C(惩罚系数) 和 gamma,
gamma 越大,支持向量越少,gamma 越小,支持向量越多。
而支持向量的个数影响训练和预测的速度。
C 越高,容易过拟合。C 越小,容易欠拟合。


学习资料:
https://data-flair.training/blogs/svm-kernel-functions/
https://www.quora.com/What-are-kernels-in-machine-learning-and-SVM-and-why-do-we-need-them
https://www.zhihu.com/question/21883548
https://www.quora.com/How-do-I-select-SVM-kernels


推荐阅读
历史技术博文链接汇总
也许可以找到你想要的:
[入门问题][TensorFlow][深度学习][强化学习][神经网络][机器学习][自然语言处理][聊天机器人]

  • 23
    点赞
  • 175
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值