在改组输入后,SVM解决方案能否发生变化?

时间:2011-10-06 16:01:00

标签: opencv machine-learning svm

当训练支持向量机(SVM)用于具有完全相同数据的分类时,我基于输入的顺序获得不同的结果,即。如果我改变数据,我会得到不同的SVM。

如果我理解正确的理论,无论输入的顺序如何,SVM解决方案应该是相同的,那么为什么我会得到不同的结果呢? SVM中是否有任何实现“细节”,为什么改组会改变解决方案?我已经多次检查过我的代码,因为我觉得这很有气味。

我在OpenCV中使用SVM实现。

编辑:在这种情况下,通过改组我指的是更改数据点的顺序而不是功能。

2 个答案:

答案 0 :(得分:1)

我不熟悉OpenCV实现。但要这样做:在完全相同的数据集上运行几次试验 - 没有改组,相同的顺序,相同的数据点。查看SVM是否更改。显然,从理论上讲,它不应该。但可能是在实现中某处有一些小的随机化步骤,为同一输入产生不同的输出。

编辑:正如Chris A.问的那样,在改组后,特征向量是否与其正确的标签相对应?如果没有,那显然会破坏你的结果。

答案 1 :(得分:1)

SVM用于求解凸优化问题,因此最大值是唯一的。这意味着任何随机优化算法都将解决非常接近唯一最优解的问题。并且洗牌不能改变浮点运算精度以上的结果。