GBDT-为什么 GBDT 优于随机森林和决策树

77 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 9 天,点击查看活动详情

本文不一定正确,都是一些个人理解

首先要理解的是决策树、随机森林和 GBDT 的偏差都不大。决策树和 bagging 是因为决策树模型本身的学习能力足够,所以偏差不大;GBDT 是通过不断拟合伪残差来一步步的减小偏差。因此对于偏差,三者差距不大

但是对于方差,相比于决策树,随机森林通过弱评估器的独立性降低方差,这个独立性一般是通过对样本有放回的随机抽样或者对特征的随机抽样达到的,但即使这么做,不同的树之间的相关系数依旧会较大(这是相对于 GBDT 的),所以只是降低了一部分的方差;对于 GBDT,也需要降低方差,由于 GBDT 通过不断拟合 (x,ft(x))(x, f_{t}(x)),也就是样本和样本的偏差,本身不同树之间的相关系数就比较小,再加上限制树的最大深度很小来进一步降低,通过对树进行剪枝是 GBDT 或者说 boosting 所特有的,无论是决策树还是随机森林,如果进行大刀阔斧的剪枝,一定会导致准确率快速下降,因此在树的结构方面,为了保证偏差,二者不能和 boosting 采取一样的策略。综上所述,在方差上三者的关系应该是 boosting>bagging>决策树

在引用知乎上的一段回答

链接:为什么xgboost/gbdt在调参时为什么树的深度很少就能达到很高的精度? - 知乎 (zhihu.com)

对于 Bagging 算法来说,由于我们会并行地训练很多不同的分类器的目的就是降低这个方差 (variance) E[hE(h)]\mathbf{E}[h-\mathbb{E}(h)], 因为采用了相互独立的基分类器多了以后,hh 的值自然就会靠近 E(h)\mathbb{E}(h). 所以对于每个基分类器来说,目标就是如何降低这个偏差(bias), 所以我们会采用深度很深甚至不剪枝的决策树。

对于Boosting来说,每一步我们都会在上一轮的基础上更加拟合原数据,所以可以保证偏差(bias),所以对于每个基分类器来说,问题就在于如何选择variance更小的分类器,即更简单的分类器,所以我们选择了深度很浅的决策树。