为什么选择Adaboost和决策树?


11

我已经阅读了一些有关分类任务的增强算法,尤其是Adaboost。我了解Adaboost的目的是招募几个“弱学习者”,并通过对训练数据进行一系列迭代,推动分类器学习预测模型反复犯错的类。但是,我想知道为什么我所做的许多阅读都使用决策树作为弱分类器。是否有特定原因?是否有某些分类对于Adaboost而言特别好坏?


您可以使用的最简单的学习器是深度= 1的决策树。也许这就是为什么每个人都在示例中使用它的原因。
亚伦2014年

Answers:


17

我在回答相关SO问题时谈到了这一点。一般而言,决策树非常适合提升,比其他算法要重要得多。要点/摘要版本是这样的:

  1. 决策树是非线性的。用线性模型进行增强根本无法很好地工作。
  2. 弱学习者需要始终比随机猜测要好。您通常不需要对决策树进行任何参数调整即可获得该行为。训练SVM确实需要参数搜索。由于数据在每次迭代中都会重新加权,因此您可能需要在每次迭代中执行另一个参数搜索。因此,您正在大幅度增加要做的工作量。
  3. 决策树的训练速度相当快。由于我们要建造100或1000座这样的房屋,因此这是一个不错的选择。它们也可以快速分类,当您需要100或1000来运行才能输出决策时,这又很重要。
  4. 通过更改深度,您可以轻松,轻松地控制偏差/方差的权衡,因为知道增强可以减少偏差,但也可以大大减少方差。已知增强过拟合,因此在这方面易于调整的点很有用。

1

我没有教科书的答案。但是,这里有一些想法。

与装袋直接比较可以看到提升。这是偏差方差折衷困境的两种不同方法。套袋学习者的能力较弱,但一些学习者的偏见程度低且方差高,通过对装袋总体进行平均,可以减少方差,从而产生较小的偏见。另一方面,对不同的弱势学习者来说,提升效果很好。提拔弱小的学习者具有高偏见和低方差。通过将一个学习者放在另一个学习者的顶部,增强合奏会尝试减少偏见,并稍有差异。

结果,例如,如果您考虑使用树木进行套袋和助推作为弱势学习者,那么最好的使用方法是使用小型和矮树进行助推,而使用非常详细的树木进行套袋。这就是为什么增强程序经常将决策树桩用作弱学习者的原因,这是可能的最短树(如果在单个维度上存在单个if条件)。该决策树桩非常稳定,因此方差很小。

我看不出有任何理由将树木用于升压程序。但是,短树很简单,易于实现且易于理解。但是,我认为,要想成功地完成提升程序,学习能力弱的学习者必须具有较低的方差,必须具有刚性,并且自由度很小。例如,我认为将神经网络作为弱学习者毫无意义。

此外,您还必须注意,对于某些增强程序(例如,梯度增强),Breiman发现,如果弱学习者是一棵树,则可以对增强工作方式进行一些优化。因此,我们有了梯度增强树。ESTL书中很好地介绍了增强功能。

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.