• Abigail
    2021-11-14
    机器学习理论中的集成学习 Ensemble Learning 最主要的学习策略为 Bagging 和 Boosting,都是从一个较弱的Learner 模型出发(例如DecisionTree)逐渐增加 Learner 的数量来的提高整个模型集群的Performance。 随机森林RF = Bagging(DT), 每棵树可以从数据或特征的一个子集上建模,来增加各个树之间的差异度,减少冗余,建模过程可以并行计算。 梯度提升决策树GBDT = Boosting(DT), 每课新树的目标就是目前整个树群的残差,属于增量建模过程,无法并行,相比于RF更容易过拟合数据,或者说学习能力更强。 GBDT 比RF 系统的鲁棒性要差,任何一个Learner出现问题都可以导致结果很大的偏差,但是其增量建模方法对于控制模型体积,以及后续的分发,更新和维护非常有帮助,这也是为啥当年XGBoost 可以在Kaggle屠榜,并且在工业界打出一片天地的理由之一。当然XGBoost 内部对并行计算进行了优化,但是其整体还是个GBDT。 RF非常依赖单棵DT树的学习能力,所以相比GBDT一般都会需要比较复杂的树结构或比较复杂的树群,而且后面还要考虑是否对森林进行裁剪来优化集群的体积,这也是它的缺点之一。 总结,模型的比较必须基于客观实际数据和应用场景指标,精度,速度,计算资源一般只能三选二。分享一下我个人这些年来做实际项目时的原则是:Simplicity,Robustness,Fault Tolerance 和 Predictable Timing,这点和做学术研究中各种Fancy的DL神经网络的很不一样,LOL。Amazon awslabs 的 autogluon 工具就是一个非常优秀的单机实验工具来帮你在项目前期快速做模型选择和分析。PS:我可以很“不负责任”的说GBDT类方法可以解决90%~95%以上的表格类数据建模问题,祝大家学习进步!
    展开

    作者回复: 总结的很到位~ 赞👍~ 尤其是项目实施原则:Simplicity,Robustness,Fault Tolerance 和 Predictable Timing; 和老弟说的精度,速度,计算资源一般只能三选二。 能看得出来,实战经验丰富,实践出发、结果导向~

    
    9
  • Geek_d4ccac
    2021-11-10
    RF和GBDT都是Ensemble 相比单个Decision Tree更稳定/Robust,模型表现更优。RF并没有在降低残差上做过多的努力但因为每个树都是独立的应该可以更好的并行运算。GBDT的拟合过程在不断的降低残差但会存在过拟合泛化效果差的问题,且因为树与树之间有前后关系可能只能在单个树上并行运算而不能像RF一样同时算森林里的所有树。不知道理解的对不对,请老师指点!

    作者回复: 完美,满分💯答案~

    
    3
  • inkachenko
    2022-01-11
    GBDT是先拟合前一棵树的gradient获得树结构,再优化叶子节点的数值吧

    作者回复: 是的,严格来说,每棵树是拟合前一棵树的Gradient,只有当loss function是MSE的时候,才刚好是残差,原文为了方便初学者理解,做了简化

    
    