libsvm警告: WARNING: reaching max number of iterations 解决办法

https://stats.stackexchange.com/questions/37669/libsvm-reaching-max-number-of-iterations-warning-and-cross-validation

http://hk.uwenku.com/question/p-vmaehgpf-eg.html

https://github.com/gmum/gmum.r/blob/master/src/svm/svm.cpp

链接1解释了原因:警告是因为LIBSVM使用迭代求解二次优化问题,以求得最大裕度平面,但是在最大迭代次数内,未能找到最大边缘平面,就是说找不到或者限制次数内还没有找到,继续找可能找到。

链接2给出了解决办法,就是这个问题可以 跳过,到达最大限制次数时候使用当前值作为最优解。SVM训练时间和这个迭代次数关系很大,你会发现当你优化参数时,越往后优化越慢,因为有的参数优化时间非常慢,就是因为训练时候二次优化问题迭代次数太多了,比如我设置为1千万,那么刚开始的参数较差,迭代十万次就收敛了,但是后面的迭代了1千万次,就会很慢。可根据情况调整。

链接3是修改过的程序,和原来的程序没什么大差别。

总结起来就是二次优化问题迭代次数太多了,找不到最优平面,但是我们可以以当前优化的结果作为最优解(也就是不用管他,大不想看可以屏蔽语句)。这个值和训练时间也有关系,如果太大的话,参数优化过程中如果出现优化次数非常多,优化过程会很慢(训练时间长)。就这么多。

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值