SVM,过度拟合,尺寸诅咒


37

我的数据集很小(120个样本),但是特征的数量却很大(从1000-200,000)不等。尽管我正在进行特征选择以选择特征子集,但它可能仍然过拟合。

我的第一个问题是,SVM如何处理过度拟合(如果有的话)。

其次,随着我对分类情况下的过度拟合的更多研究,我得出的结论是,即使具有少量特征的数据集也可能过度拟合。如果我们没有与类标签相关的特征,则无论如何都会发生过度拟合。因此,我现在想知道如果无法为类标签找到正确的功能,那么自动分类的意义何在?在文档分类的情况下,这将意味着手动制作与标签有关的单词词库,这非常耗时。我想我想说的是,如果不亲自挑选正确的功能,就很难建立通用模型?

同样,如果实验结果没有表明结果偏低/没有过拟合,则变得毫无意义。有办法测量吗?

Answers:


41

在实践中,即使在属性数量大于观测值数量的情况下,SVM仍倾向于抗过度拟合的原因是它使用了正则化。他们避免过度拟合的关键在于对正则化参数进行仔细调整,对于非线性SVM,对内核进行仔细选择并对内核参数进行调整。C

C

GC Cawley和NLC Talbot,通过超参数的贝叶斯正则化防止模型选择过拟合,《机器学习研究杂志》,第8卷,第841-861页,2007年4月。(www

GC Cawley和NLC Talbot,模型选择中的过拟合和性能评估中的后续选择偏差,《机器学习研究期刊》,2010年。11,第2079-2107页,2010年7月。(www

这两篇论文都使用了内核岭回归,而不是SVM,但是同样的问题在SVM中也很容易出现(同样的界限也适用于KRR,因此实际上它们之间没有太多选择)。因此,从某种意义上说,SVM并不能真正解决过度拟合的问题,它们只是将问题从模型拟合转移到模型选择。

通过首先执行某种功能选择来使SVM的生活更轻松通常是一种诱惑。通常,情况变得更糟,因为与SVM不同,特征选择算法往往会随着属性数量的增加而出现更多的过拟合现象。除非您想知道哪些是信息性属性,否则通常最好跳过功能选择步骤,而仅使用正则化来避免过度拟合数据。

简而言之,在对120个观测值和数千个属性的问题上使用SVM(或其他正则化模型,如山脊回归,LARS,Lasso,弹性网等)不存在固有问题,只要对正则化参数进行适当调整即可


是否有任何论文显示基于信息增益的排名等特征选择方法更可能过拟合?
user13420'8

1
并不是我所知道的,重点是SVM的一些理论结果表明,由于属性的数量,SVM可以抵抗过度拟合,但是特征选择方法甚至没有。FWIW由Miller撰写的有关“回归中子集选择”的专着建议,如果仅需要预测性能,则建议使用正则化方法。在特征选择方面存在一些公开的挑战,这表明正则化倾向于胜过特征选择(请参见nipsfsc.ecs.soton.ac.ukcausality.inf.ethz.ch/challenge.php)。
迪克兰有袋博物馆,2012年

如第一段所述,SVM倾向于抗过度拟合,是因为它使用正则化(参数C),所以默认情况下,svm此正则化参数C是否为?而且我不确定此C控制的变量是什么,您是说那些松弛变量
牛油果

10

我将从第二个也是最后一个问题开始。

泛化问题显然很重要,因为如果无法将机器学习的结果泛化,那么它们将完全无用。

确保泛化的方法来自统计。我们通常假设,数据是从现实中产生的某种概率分布生成的。例如,如果您是2000年出生的男性,那么当您达到10岁时,体重/身高/眼睛颜色是什么的概率分布是由2000年可用的基因库,可能的环境因素等导致的。我们有很多数据,我们可以说一些有关这些基本分布的信息,例如,它们很有可能是高斯或多项式的。如果我们有准确的分布图,那么给定一个10岁孩子在2010年的身高,体重和眼睛颜色,我们可以很好地估算出孩子是男性的概率。如果概率接近于0或1,我们就可以很好地了解孩子们的真实性。

kδk+ϵk+ϵ

现在回到SVM。如果您不使用内核,或者使用映射到有限维空间的内核,则所谓的Vapnik-Chervonenkis维是有限的,它是假设空间复杂度的度量,并且有了该维和足够的训练示例,您可以得到较高的结果。测试集上的误差不会比训练集上的误差大很多的可能性。如果使用映射到无穷维特征空间的内核,则Vapnik-Chervonenkis维也无穷大,更糟糕的是,无论训练样本数如何,仅凭训练样本就无法保证良好的概括性。幸运的是,SVM的边距大小对于确保泛化而言是一个很好的参数。有了很大的余量和训练集,您就可以保证测试误差也不会比训练误差大很多。


7

您可能要考虑至少两个主要的过拟合来源。

  1. 从可用训练样本推断太多的算法中过度拟合。通过使用模型的泛化能力的度量,可以最好地防止这种情况发生。交叉验证就是这样一种流行的方法。

  2. 过度拟合,因为基础分布采样不足。通常,除非您可以收集更多数据或将有关问题的领域知识添加到模型中,否则几乎无能为力。

具有120个样本和大量功能,您很可能会犯规2,也可能容易犯错1。

通过仔细观察模型复杂度对测试和训练错误的影响,您可以做大约1的事情。


但是,如何检测我们是否过度拟合?如果模型在交叉验证方面做得很好,是因为模型确实好还是因为1或2导致过拟合而这样做?此外,由于具有成千上万个功能,因此手动分析每个功能将很麻烦。如果无法识别过度拟合,我们如何相信任何交叉验证结果?
user13420'8

1
如果没有其他数据,很难知道您是否对抽样不足人口过度拟合。您可以使用验证集对数据进行调整,然后将数据分为三组,然后对模型进行单独的测试。另一种方法是修改模型的复杂性,并查看训练和测试集的准确性如何变化。测试设置错误的提升将表明数据存在一定程度的模型过度拟合。
image_doctor 2012年

如果训练和测试集保持平衡,则重复进行50/50保持试验将使您有所感触。他们可能不会。某些模型,例如KNN,将在训练集上达到完美的精度,因此在某种意义上固有地过拟合。但是它们仍然可以在测试集上达到可接受的性能。因此,与机器学习中的许多内容一样,最终这一切都取决于数据的确切细节。
image_doctor 2012年

@image_doctor您能否详细说明“修改模型的复杂性”?
Keith Hughitt
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.