libsvm正则化和liblinear正则化的区分

最近做了一些比较微小的支持向量机的学习。也算是坎坎坷坷吧,遇到的问题包括,使用什么支持向量机,如何使用支持向量机以及使用什么样的支持向量机的问题。

既然这一次的题目是libsvm和liblinear的正则化区别,就不先提其他的,咱们先聊正则化这些。为啥会涉及到正则化呢,主要是因为当时向量机搭建好了,跑了好几次,结果不理想,都是训练集的准确率极高,测试集的准确率极低。上各种论坛,机器学习微信群里问啊,得到比较一致的回答,就是模型过拟合了。而支持向量机过拟合一般的解决办法就是通过正则化解决的。

这里聊聊这个正则化,按我理解正则化比较通俗的说法就是容忍度,对坏点的容忍度。当然网上有一大堆的理论推导什么的。这里不细说了(其实也是不太会,数学一般般)。研究生阶段学过优化方法这门课,其实正则化呢,就是优化方法里面讲的凸优化问题。在其中的式子中加入范数进行约束。比如有1范数,2范数,什么的。

其实一般人看到理论直接上手实现,还是比较难的。比较捷径的方式就是用工具包或者工具箱什么的,调参就行了(其实工业界大部分也都是这么干的)。

好了现在讲讲libsvm和liblinear的正则化的方式。libsvm正则化是通过c和g值的调整达到的,更准确的是c值的调整。而c和g值是可以通过交叉验证找到最优的。(具体的实现方式可以在《MATLAB神经网络30个案例分析》这本书上查到)以及这个网址点击打开链接

liblinear是通过设置s参数达到最终的目的,可以设置l1、l2的模式达到最终正则化的目的。具体可以参考点击打开链接 。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值