Friedman 提出的梯度树提升使用决策树作为基础学习器。我想知道我们是否应该使基本决策树尽可能复杂(完全成熟)或更简单?选择有什么解释吗?
随机森林是另一种使用决策树作为基础学习器的集成方法。根据我的理解,我们通常在每次迭代中使用几乎完全生长的决策树。我对吗?
Friedman 提出的梯度树提升使用决策树作为基础学习器。我想知道我们是否应该使基本决策树尽可能复杂(完全成熟)或更简单?选择有什么解释吗?
随机森林是另一种使用决策树作为基础学习器的集成方法。根据我的理解,我们通常在每次迭代中使用几乎完全生长的决策树。我对吗?
请注意,与 Boosting(顺序)不同,RF并行生长树。iterative
因此,您使用的术语不合适。
这个问题在这篇非常好的帖子中得到了解决。请看一下它和其中的参考资料。http://fastml.com/what-is-better-gradient-boosted-trees-or-random-forest/
请注意,文章中谈到了校准,并链接到另一篇(不错的)关于它的博客文章。尽管如此,我发现从 Boosting 获得校准概率一文让您更好地了解在提升分类器的上下文中校准是什么,以及执行它的标准方法是什么。
最后缺少一个方面(更理论上)。RF 和 GBM 都是集成方法,这意味着您可以从大量较小的分类器中构建分类器。现在根本区别在于使用的方法:
虽然上面的答案真的很棒,但我还是想用一种非常简单的语言来解释它们的区别。
Bagging 技术是 Bootstrap Aggregation,我们使用 bootstrap 的样本集构建单独的决策树,并对结果预测进行平均。每个单独的决策树都在没有任何修剪的情况下生长得很深,因此它们中的每一个都具有高方差和低偏差,但对它们进行平均会降低整体方差。与使用单个树的预测相比,它们提高了准确性。
Bagging 技术的缺点是任何一个预测器都比其他预测器非常强大。每棵袋装树看起来都很相似,因为它们中的大多数都会使用那个强预测器。因此来自袋装树的预测将是高度相关的。不幸的是,对许多高度相关的量进行平均并不会像对许多不相关的量进行平均那样减少方差。
随机森林通过强制每个拆分只考虑随机预测变量的子集来克服这个问题。bagging 和随机森林的主要区别在于预测子集大小的选择。如果使用所有预测变量构建随机森林,则它等于装袋。
Boosting 以类似的方式工作,只是树是按顺序生长的:每棵树都是使用来自先前生长的树的信息来生长的。Boosting 不涉及自举采样;相反,每棵树都适合原始数据集的修改版本。与 bagging 不同,每棵树的构建很大程度上取决于已经生长的树。因为一棵特定树的生长考虑了其他已经生长的树,较小的树通常就足够了。这些小树大多是单裂的树桩。