AdaBoost是更少还是更容易过度拟合?


20

我已经阅读了各种(看似)矛盾的陈述,与其他学习方法相比,AdaBoost(或其他增强技术)是否更趋于过度拟合。

有充分的理由相信彼此吗?如果依赖,它依赖什么?AdaBoost减少/更多倾向于过度拟合的原因是什么?


1
我的直觉是,与随机森林相比,它更容易过度拟合。但是,该算法旨在避免过度拟合,并且通常似乎不是问题。我没有引用来对此进行备份,但是您可以使用该caret包对adaboost进行交叉验证,并且我发现它通常可以很好地概括。
Zach 2012年

Answers:


17

正如您所说,已经对此问题进行了很多讨论,并且伴随着一些沉重的理论,我不得不承认我从未完全理解过。根据我的实际经验,AdaBoost可以很好地适应过度拟合,而LPBoost(线性编程增强)则更是如此(因为目标函数需要稀疏学习者的稀疏组合,这是一种能力控制的形式)。影响它的主要因素是:

  • “弱”学习者的“实力”:如果使用非常简单的弱学习者,例如决策树桩(1级决策树),则算法不太容易过拟合。每当我尝试使用更复杂的弱学习器(例如决策树甚至超平面)时,我发现过度拟合的发生速度会更快

  • 数据中的噪声水平:AdaBoost特别容易在嘈杂的数据集上过拟合。在此设置中,最好使用正则化形式(RegBoost,AdaBoostReg,LPBoost,QPBoost)

  • 数据的维数:我们知道,总的来说,我们在高维空间(“维数的诅咒”)中会遇到更多的过度拟合,而AdaBoost在这方面也可能会受到影响,因为它只是分类器的线性组合,而分类器本身会遭受从问题。是否像其他分类器一样容易确定。

当然,您可以像任何其他分类器一样使用启发式方法(例如验证集或倍交叉验证)来设置停止参数(或不同变体中的其他参数)。ķ


9

我同意tdc评论中提到的大多数观点。但是,我必须添加和更正一些内容。

  • 正如彼得·伯曼(PeterBühlmann)的L2Boost中所显示的那样,随着弱学习者数量(提升轮数)的增加,偏差以指数形式快速收敛,而方差以几何减小的幅度增加,这意味着:与大多数其他方法相比,它拟合得慢得多。
  • Zach评论中错误地提到,在过度拟合方面,它比随机森林要好。这是完全错误的。实际上,根据理论(请参阅Breiman的原始随机森林论文),只要随机森林的弱分类器不会过度拟合数据,它就绝对不会过度拟合。
  • 与tdc注释中提到的方法不同,大多数增强方法对标签噪声高度敏感,在存在标签噪声的情况下很容易过度拟合。
  • 在贝叶斯错误率远非零的数据集中(即,特征还不足以区分),增强方法也很容易过拟合。因为他们试图将训练误差降低到零,但实际上,即使是最佳分类器(例如,贝叶斯分类器)也可以达到40%的错误率。
  • 最后,据我所知,在任何地方都没有出现过拟合现象,在这种情况下,泛化误差不会随着增强回合次数的增加而增加,但也不会减少。这意味着算法陷入了局部最优状态。在这种情况下,训练误差不断减小,而测试误差几乎保持恒定。到目前为止,我们从未将这种现象视为过拟合的迹象,但我认为这是过拟合的迹象,并且通过使用更复杂的弱学习者,(奇怪!)我们实际上可能会反对(最后一点应谨慎考虑) :D)

1
值得补充的是,我今天可能在AdaBoost和Random Forest身上都经历了后一种过拟合。在交叉验证中,失叠误差收敛到只有20个基本估计量的常数,然后在该常数附近以高方差反弹。我的怀疑是完全一样的:贪婪的算法陷入了某种局部最优中。这并不是对所发生事情的确认,但是很高兴认识到其他人也有同样的想法。
shadowtalker

@ssdecontrol您可以分享您的工作吗?我想重现结果以更好地理解
saurabh agarwal

@saurabhagarwal我想我正在从事Kaggle Titanic项目
shadowtalker
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.