支持向量机,过拟合,维度灾难

机器算法验证 分类 支持向量机
2022-01-18 10:55:36

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

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

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

此外,如果实验结果没有表明结果具有低/没有过拟合,则它变得毫无意义。有没有办法测量它?

3个回答

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

SVM 是泛化误差界限的近似实现,它取决于边距(本质上是从决策边界到每个类最近的模式的距离),但与特征空间的维度无关(这就是为什么使用内核技巧将数据映射到一个非常高维的空间并不是一个看起来很糟糕的主意)。因此,原则上SVM 应该对过度拟合具有很强的抵抗力,但实际上这取决于对和内核参数的仔细选择。可悲的是,在调整超参数时也很容易发生过度拟合,这是我的主要研究领域,请参阅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、弹性网络等)没有固有问题。

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

泛化问题显然很重要,因为如果机器学习的结果不能被泛化,那么它们就完全没用了。

确保泛化的方法来自统计学。我们通常假设,数据是从某种源自现实的概率分布生成的。例如,如果您是 2000 年出生的男性,那么当您达到 10 岁时,您的体重/身高/眼睛颜色的概率分布是由 2000 年可用的基因库、可能的环境因素等造成的。如果我们有很多数据,我们可以对这些基础分布发表一些看法,例如,它们很有可能是高斯分布或多项式分布。如果我们有准确的分布图,那么给定 2010 年 10 岁孩子的身高、体重和眼睛颜色,我们可以很好地近似得出这个孩子是男性的概率。如果概率接近 0 或 1,我们可以很好地了解孩子的性别究竟是什么。

更正式地说,我们通常会尝试说,如果训练误差为 ,那么很有可能 ( ) 从相同分布生成的某些数据上的误差将小于的概率之间存在已知关系我在这里介绍的方法被称为可能近似正确学习,它是计算学习理论的重要组成部分,它处理学习算法的泛化问题。还有许多其他因素可以降低 epsilon 并增加这些范围内的 delta,即。假设空间的复杂性。kδk+ϵk+ϵ

现在回到 SVM。如果您不使用内核,或使用映射到有限维空间的内核,则所谓的 Vapnik-Chervonenkis 维度是假设空间复杂度的度量,它是有限的,并且有了足够的训练示例,您可以获得高测试集上的误差不会比训练集上的误差大很多的概率。如果你使用映射到无限维特征空间的核,那么 Vapnik-Chervonenkis 维也是无限的,更糟糕​​的是,单独的训练样本不能保证良好的泛化,无论它们的数量是多少。幸运的是,SVM 的边距大小被证明是确保泛化的一个很好的参数。有了大的边距和训练集,你可以保证测试误差也不会比训练误差大很多。

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

  1. 从可用训练样本中推断出过多的算法的过度拟合。最好通过使用模型泛化能力的度量来从经验上避免这种情况。交叉验证就是这样一种流行的方法。

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

如果有 120 个样本和大量特征,您很可能会遇到 2,也可能容易遇到 1。

您可以通过仔细观察模型复杂性对测试和训练错误的影响来做一些关于 1 的事情。