SVM – 硬边界还是软边界?

对于一个线性可分的数据集,使用硬边界SVM是否一定比使用软边界SVM更好?


回答:

即使训练数据集是线性可分的,我认为软边界SVM会更好。原因是,在硬边界SVM中,单个异常值就可能决定边界,这使得分类器对数据中的噪声过于敏感。

在下面的图表中,单个红色异常值几乎决定了边界,这是过拟合的典型标志。

enter image description here

为了理解软边界SVM的工作原理,最好从其对偶形式来看,你会发现它具有与硬边界SVM相同的最大化边界的目标(边界可以为负),但增加了一个约束,即每个与支持向量相关的拉格朗日乘数被C所限制。这实际上限制了任何单个点对决策边界的影响,有关推导,请参见Cristianini/Shaw-Taylor的《支持向量机及其它基于核的学习方法导论》中的命题6.12。

结果是,即使数据集是线性可分的,软边界SVM也可以选择具有非零训练误差的决策边界,并且不太可能过拟合。

这是一个使用libSVM在合成问题上的例子。圈出的点显示了支持向量。你可以看到,降低C值会使分类器牺牲线性可分性以获得稳定性,从某种意义上说,任何单个数据点的影響现在由C限制。

enter image description here

支持向量的意义:

对于硬边界SVM,支持向量是那些“位于边界上”的点。在上图中,C=1000几乎接近硬边界SVM,你可以看到圈出的点是那些将触及边界的点(图中的边界几乎为0,所以它基本上与分隔超平面相同)。

对于软边界SVM,用对偶变量来解释它们会更容易。你的支持向量预测器在对偶变量中的形式如下函数所示。

enter image description here

这里,alphas和b是在训练过程中找到的参数,xi’s和yi’s是你的训练集,x是新的数据点。支持向量是从训练集中包含在预测器中的数据点,即那些具有非零alpha参数的数据点。

Related Posts

使用LSTM在Python中预测未来值

这段代码可以预测指定股票的当前日期之前的值,但不能预测…

如何在gensim的word2vec模型中查找双词组的相似性

我有一个word2vec模型,假设我使用的是googl…

dask_xgboost.predict 可以工作但无法显示 – 数据必须是一维的

我试图使用 XGBoost 创建模型。 看起来我成功地…

ML Tuning – Cross Validation in Spark

我在https://spark.apache.org/…

如何在React JS中使用fetch从REST API获取预测

我正在开发一个应用程序,其中Flask REST AP…

如何分析ML.NET中多类分类预测得分数组?

我在ML.NET中创建了一个多类分类项目。该项目可以对…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注