SVM总是收敛的吗?

A. *_*ghi 6 python svm scikit-learn

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

请注意,我没有对我的数据做出任何假设。知道了这一点,SVM 对于任意数据集总是收敛的吗?

Ber*_*oGO 5

它应该始终收敛,除非存在数值问题。

确保您的数据已正确缩放。如果不同的特征具有不同数量级的值,那么这是一个坏主意。您可能希望将所有特征标准化为范围 [-1,+1],尤其是对于特征超过 100 个的问题。

问:程序一直运行(有输出,即很多点)。我应该怎么办?

理论上 libsvm 保证收敛。因此,这意味着您正在处理病态情况(例如参数太大/太小),因此会出现数值困难。

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

  • 为了完整起见,通常将特征标准化为“mean = 0 & std = 1”,即“feature = (feature - Mean(feature)) / std(feature)” (3认同)