梯度助推树与随机森林


110

弗里德曼(Friedman)提出的梯度树增强使用决策树作为基础学习者。我想知道我们是否应该使基本决策树尽可能复杂(完全成长)或更简单?选择有什么解释吗?

随机森林是使用决策树作为基础学习者的另一种集成方法。根据我的理解,我们通常在每次迭代中使用几乎完全增长的决策树。我对吗?


1
您可以在此处找到有关增强树的另一个非常好的参考:xgboost.readthedocs.io/en/latest/model.html
Naghmeh,

@Naghmeh-死链接;似乎已移至xgboost.readthedocs.io/en/latest/tutorials/model.html
mlibby,

Answers:


149

error = bias + variance

  • 提升是基于弱小的学习者(高偏见,低方差)。就决策树而言,学习能力较弱的人是浅树,有时甚至小到决策树桩(有两片叶子的树)。Boosting主要通过减少偏差(以及在一定程度上通过汇总许多模型的输出来减少偏差)来减少误差。
  • 另一方面,正如您所说,Random Forest使用完全成长的决策树(低偏差,高方差)。它以相反的方式解决错误减少任务:通过减少方差。使树木互不相关以最大程度地减少方差,但是该算法无法减少偏差(该偏差略高于森林中单个树的偏差)。因此,需要大的,未修剪的树,以使偏差最初尽可能地低。

请注意,与Boosting(顺序的)不同,RF 并行地生长树。因此iterative,您使用的术语不合适。


1
“使树木互不相关,以最大程度地减少方差,但是该算法无法减少偏差(该偏差略高于森林中单个树的偏差)” –关于“略高于单个偏差的部分”森林中的树木”似乎不正确。请参阅web.stanford.edu/~hastie/Papers/ESLII.pdf第15.4.2节:“与装袋一样,随机森林的偏差与任何单个采样树的偏差相同。” 也许您的意思是“比完全适合原始数据的单个成熟树的偏差高得多”?
阿德里安

1
@gung我认为OP中有一个未解决的关键问题,那就是:为什么不在GBM的第一步使用完全成熟的树?为什么使用一系列弱学习者胜过一棵完整的树?我对此感到很好奇
ftxx

55

这个很好的帖子解决了这个问题。请查看它及其中的参考。http://fastml.com/what-is-better-gradient-boosted-trees-or-random-forest/

请注意,文章中谈到的是校准,并链接到有关它的另一篇(不错的)博客文章。尽管如此,我发现论文《从Boosting获得校准的概率》使您更好地了解了Boosted分类器中的校准是什么,以及执行校准的标准方法是什么。

最后是一个方面的缺失(更多是理论上的)。RF和GBM都是集成方法,这意味着您需要使用大量较小的分类器来构建分类器。现在,根本的区别在于所使用的方法:

  1. RF使用决策树,这很容易过度拟合。为了获得更高的精度,RF决定基于装袋创建大量的传感器。基本思想是一遍又一遍地对数据进行重采样,并为每个样本训练一个新的分类器。不同的分类器以不同的方式拟合数据,并且通过投票将这些差异平均化。
  2. GBM是一种增强方法,它基于弱分类器。这个想法是一次添加一个分类器,以便训练下一个分类器以改进已经训练的集合。请注意,对于RF,每次迭代都对分类器进行独立训练。

3
从您的答案中可以得出一个合理的结论:RF比GBM更加适合吗?
8forty '18年

4
@ 8forty我不会得出这个结论-虽然RF中的一棵树会比GBM中的一棵树过度拟合(因为它们要小得多),但在RF中,当使用很多树时,这些过拟合将被平均化,而GBM添加的树越多,过度拟合的风险就越高。简而言之,随着N(使用的树数)达到无穷大,我预计RF的拟合度将远小于GBM
Ant
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.