梯度提升树与随机森林

机器算法验证 机器学习 随机森林 大车 助推 集成学习
2022-01-27 12:22:46

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

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

3个回答

error = bias + variance

  • Boosting 基于学习器(高偏差,低方差)。就决策树而言,弱学习器是浅树,有时甚至小到决策树桩(有两片叶子的树)。Boosting 主要通过减少偏差(以及在一定程度上通过聚合来自许多模型的输出)来减少误差。
  • 另一方面,正如您所说,随机森林使用完全成熟的决策树(低偏差,高方差)。它以相反的方式处理减少错误的任务:通过减少方差。使树不相关以最大限度地减少方差,但该算法无法减少偏差(略高于森林中单个树的偏差)。因此需要大的、未修剪的树,以便最初的偏差尽可能低。

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

这个问题在这篇非常好的帖子中得到了解决。请看一下它和其中的参考资料。http://fastml.com/what-is-better-gradient-boosted-trees-or-random-forest/

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

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

  1. RF 使用决策树,这很容易过拟合。为了达到更高的准确率,RF 决定基于bagging创建大量的它们。基本思想是一遍又一遍地重新采样数据,并为每个样本训练一个新的分类器。不同的分类器以不同的方式过度拟合数据,并通过投票将这些差异平均化。
  2. GBM 是一种增强方法,它建立在弱分类器之上。这个想法是一次添加一个分类器,以便训练下一个分类器以改进已经训练的集成。请注意,对于 RF 每次迭代,分类器的训练独立于其余部分。

虽然上面的答案真的很棒,但我还是想用一种非常简单的语言来解释它们的区别。

  • Bagging 技术是 Bootstrap Aggregation,我们使用 bootstrap 的样本集构建单独的决策树,并对结果预测进行平均。每个单独的决策树都在没有任何修剪的情况下生长得很深,因此它们中的每一个都具有高方差和低偏差,但对它们进行平均会降低整体方差。与使用单个树的预测相比,它们提高了准确性。

  • Bagging 技术的缺点是任何一个预测器都比其他预测器非常强大。每棵袋装树看起来都很相似,因为它们中的大多数都会使用那个强预测器。因此来自袋装树的预测将是高度相关的。不幸的是,对许多高度相关的量进行平均并不会像对许多不相关的量进行平均那样减少方差。

  • 随机森林通过强制每个拆分只考虑随机预测变量的子集来克服这个问题。bagging 和随机森林的主要区别在于预测子集大小的选择。如果使用所有预测变量构建随机森林,则它等于装袋。

  • Boosting 以类似的方式工作,只是树是按顺序生长的:每棵树都是使用来自先前生长的树的信息来生长的。Boosting 不涉及自举采样;相反,每棵树都适合原始数据集的修改版本。与 bagging 不同,每棵树的构建很大程度上取决于已经生长的树。因为一棵特定树的生长考虑了其他已经生长的树,较小的树通常就足够了。这些小树大多是单裂的树桩。