当用支持向量机进行分类时,支持向量越多越好还是越少越好

转:https://www.zhihu.com/question/267666488/answer/347728105
以下的实验和观点是基于sklearn.svm.SVC,kernel是rbf,数据集用的是iris其中两个class的前两个维度。对于其它类型的svm算法或者不同的kernel,如果结论和这个有差别,以后会补充。

先放结论:对于使用rbf kernel的支持向量机(svm/svc)

  1. 参数C和gamma都会影响支持向量的数量。参数C越大,支持向量的数量越少。
  2. 仅凭支持向量的数量,不能很好地说明模型是否存在过拟合(或者欠拟合)的问题。
  3. 更少的支持向量占用的存储空间更小,预测速度更快。
    在这里插入图片描述
    当 C 逐渐增大的时候,判定边界也越来越复杂,过拟合的风险越来越大,同时支持向量(白色边框的点)的数量越来越少。

分析如下:

首先,保持gamma=0.7(rbf kernel coefficient)不变,设定不同的变量 C(penalty parameter on error term), 结果如下图所示。当 C 逐渐增大的时候,判定边界也越来越复杂,过拟合的风险越来越大,同时,我们也发现支持向量(白色边框的点)的数量越来越少。这是因为当 C 增大时,对于误差的惩罚增大,判定边界趋向于将每一个点都正确地分类,导致支持向量机的margin越来越窄,从而使得能成为支持向量的点的数量越来越少。当然,据此我们并不能得出“支持向量越少,支持向量机就越容易过拟合”的结论,因为支持向量的数量还受gamma的影响。

在这里插入图片描述
当 gamma 越来越大时,判定边界也越来越复杂,过拟合的风险越来越大,同时,支持向量(白色边框的点)的数量先减少后增多。

接下来, 我们保持 C=1 不变,设定不同的 gamma,结果如下图所示。我们发现,当 gamma 越来越大时,判定边界也越来越复杂,过拟合的风险越来越大,同时,我们也发现支持向量(白色边框的点)的数量先减少后增多。Scikit learn 对于 gamma 的作用有很好的解释 ,这里我就简单地转述一下:当 gamma 很小时,每一个支持向量的影响范围很大,甚至可以包含整个训练集,从而使得模型受限于每一个数据点,并不能很好的反应数据的复杂性。这样结果就是模型会接近线性(正如前两幅图所示)。当 gamma 很大时,每一个支持向量的影响范围很小,导致 C 并不能很好地实现 regularization 从而无法避免过拟合。

接下来,我们可以从下图更直观的观察 C 和 gamma 对于支持向量数量的影响。结果和前面分析的基本一致:保持 gamma 不变,当 C 增大时,支持向量的数量变小;保持 C 不变,当 gamma 增大时,支持向量的数量先变小再变大。
在这里插入图片描述
保持 gamma 不变,当 C 增大时,支持向量的数量变小;保持 C 不变,当 gamma 增大时,支持向量的数量先变小再变大。

那么,支持向量的数量对于支持向量机的表现有什么影响呢?对于上图同样的 C 和 gamma 的gird,我们可以画出下图 validation accuracy。Scikit learn给出的结论是:对于一些适当大小的gamma,当 C 很大时,我们也可以得到相似的支持向量机的表现。所以,通常没有必要限制支持向量的数量,gamma 参数自己就是一个很好的 regularizer。在实际情况里,更少的支持向量占用的存储空间更小,预测速度更快。
在这里插入图片描述
对于一些适当大小的gamma,当 C 很大时,我们也可以得到相似的支持向量机的表现。

综上所述,对于使用 rbf kernel 的 svm(svc),我们可以得出的结论是:

  1. 参数 C 和 gamma 都会影响支持向量的数量。参数 C 越大,支持向量的数量越少。
  2. 仅凭支持向量的数量,不能很好地说明模型是否存在过拟合(或者欠拟合)的问题。
  3. 更少的支持向量占用的存储空间更小,预测速度更快。
  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值