支持向量机 – 硬性还是软性边际?

给定一个线性可分的数据集,在软边缘SVM上使用硬边缘SVM是否更好?

即使在训练数据集是线性可分的情况下,我也会期望软边缘SVM更好。 这是因为在一个硬边缘支持向量机中,一个单独的离群点可以确定边界,这使得分类器对数据中的噪声过分敏感。

在下图中,一个单独的红色exception值本质上决定了过度拟合的边界

upload/save/so-svm.png

为了弄清楚SVM是如何实现的,最好用双重公式来看待它,在这里你可以看到它具有与硬边缘支持向量机相同的保证金最大化目标(保证金可能是负值)但是还有一个额外的约束,即与支持向量相关的每个拉格朗日乘子都受到C的约束。从本质上讲,这就限制了任何单个点对决策边界的影响,为了推导,参见Cristianini / Shaw-Taylor的命题6.12“支持向量机器和其他基于内核的学习方法“。

结果表明,即使数据集是线性可分的,软边缘支持向量机也可以select具有非零训练误差的决策边界,且不太可能过度拟合。

下面是一个在合成问题上使用libSVM的例子。 圆圈点显示支持向量。 您可以看到,降低C会导致分类器牺牲线性分离性以获得稳定性,因此任何单个数据点的影响现在都以C

upload/save/so-libsvm.png

支持向量的含义:

对于硬边缘SVM,支持向量是“在边缘”上的点。 在上面的图片中,C = 1000非常接近硬边缘支持向量机(SVM),你可以看到圆圈的点是接触边缘的点(图中的边缘几乎为0,所以它与分离超平面基本相同)

对于软边缘支持向量机来说,用双variables解释它们是很容易的。 您的支持向量预测器在双variables方面是以下函数。

upload/save/so-svm-dual.png

在这里,alpha和b是训练过程中发现的参数,xi,yi是你的训练集,x是新的数据点。 支持向量是训练集中包含在预测variables中的数据点,即具有非零阿尔法参数的数据点。

在我看来,硬边缘支持向量机适合特定的数据集,因此不能一概而论。 即使在线性可分的数据集中(如上图所示),边界内的exception值也可能影响边界。 软边距SVM具有更多的function,因为我们可以通过调整C来select支持向量。