SVM是否总是收敛?

SVM是否总是收敛?

问题描述:

我在python中使用scikit-learn来分类我的实例使用svm.SVC;然而,对于某些参数组合来说,它们决不会停止。这是因为算法需要更多时间。或者有可能算法不收敛到极值点。SVM是否总是收敛?

请注意,我没有对我的数据做任何假设。知道了,svm是否总是收敛于任意数据集?

+1

你可以改变'max_iter'如果花费太多时间。 'max_iter = -1'可以让它无限期地转向 – MMF

+0

'''理论上libsvm保证会聚。因此,这意味着您正在处理病态情况(例如太大/太小的参数),因此会出现数值困难。[来自libsvm faq(SVC的核心算法)](https://www.csie.ntu .edu.tw /〜cjlin/LIBSVM /的faq.html)。你的行为是常见的,因为一些参数倾向于使用更多的支持向量,这会对性能产生一些影响!另外:优化本身正在使用启发式加速收敛,有时可以很好地工作,有时不会(再次:params)。 – sascha

它应该总是收敛,除非有数字问题。

确保您的数据正确缩放。如果不同的特征具有不同数量级的值,这是一个糟糕的想法。您可能想要将所有要素标准化到[-1,+ 1]范围,特别是对于超过100个要素的问题。

问:该程序保持运行(输出,即许多点)。我应该怎么做 ?

理论上libsvm保证会聚。因此,这个 意味着您正在处理病态情况(例如,太大或太小的参数),因此会出现数值问题。

参考:https://www.csie.ntu.edu.tw/~cjlin/libsvm/faq.html

+2

只是为了完整性,它通常被认为是将*(*标准化*)特征标准化为'mean = 0&std = 1'的标准,作为特征=(特征 - 平均值(特征))/标准特征 –