Mih*_*dor 14 machine-learning svm libsvm
我在C-SVC模式下使用libsvm,使用2阶多项式内核,我需要训练多个SVM.在训练过程中,我为一些我训练的SVM得到了一个甚至两个警告:
WARNING: using -h 0 may be faster
*
WARNING: reaching max number of iterations
optimization finished, #iter = 10000000
Run Code Online (Sandbox Code Playgroud)
我找到了h参数的描述:
-h shrinking : whether to use the shrinking heuristics, 0 or 1 (default 1)
Run Code Online (Sandbox Code Playgroud)
我试图阅读libsvm文档中的解释,但对我来说这有点太高了.任何人都可以提供一个外行的解释,或许,一些建议,如设置这将是有益的,因为......?此外,如果通过为我训练的所有SVM设置此参数,可能会对那些未明确发出此警告的SVM的准确性产生负面影响,将会很有帮助.
我不知道该怎么做其他警告.
只是为了提供更多细节:我的训练集有10个属性(特征),它们由5000个向量组成.
更新:
如果其他人获得"达到最大迭代次数",则似乎是由数值稳定性问题引起的.而且,这将产生非常慢的训练时间.多项式内核确实受益于使用交叉验证技术来确定正则化的最佳值(C参数),并且在多项式内核的情况下,对我来说它有助于保持小于8.此外,如果内核是不均匀的\ sum(\ gamma x_i s_i + coef0)^ d(对不起,SO不支持LaTeX),其中coef0!= 0,然后交叉验证可以使用网格搜索技术实现gamma和C,因为,在此例如,gamma(1/number_of_features)的默认值可能不是最佳选择.尽管如此,根据我的实验,你可能不希望gamma太大,因为它会导致数字问题(我正在尝试最大值为8).
为了进一步了解gamma和C的可能值,我们应该尝试在grid.py中进行挖掘.
Qna*_*nan 10
缩小的启发式方法可以加速优化.正如它在常见问题解答中所述,它们有时会有所帮助,有时它们却没有.我认为这是运行时问题,而不是收敛问题.
但是,优化达到最大迭代次数的事实很有意思.您可能希望使用容差(成本参数),或查看导致此问题的各个问题.数据集大吗?
| 归档时间: |
|
| 查看次数: |
12955 次 |
| 最近记录: |