首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >GBM对XGBOOST?关键的区别?

GBM对XGBOOST?关键的区别?
EN

Data Science用户
提问于 2017-02-11 20:03:23
回答 5查看 118.2K关注 0票数 81

我试图理解GBM和XGBOOST之间的关键区别。我试着搜索它,但是找不到任何好的答案来解释这两种算法之间的区别,以及为什么xgboost几乎总是比GBM表现得更好。是什么让XGBOOST这么快?

EN

回答 5

Data Science用户

回答已采纳

发布于 2017-02-12 02:22:53

引用xgboost作者的话:

xgboost和gbm都遵循梯度升压原理。然而,在建模细节方面存在着差异。具体来说,xgboost采用了一种更加正则化的模型形式化来控制过度拟合,从而使其具有更好的性能.我们已经更新了一个关于模型介绍的全面教程,您可能想看看这个教程。不过,升华树介绍这个名为xgboost的名称实际上指的是将计算资源限制在增强树算法上的工程目标。这就是为什么很多人使用xgboost的原因。对于模型,它可能更适合被称为正则梯度增强。

编辑:有一个详细的指南的xgboost,显示了更多的差异。

参考资料

https://www.quora.com/What-is-the-difference-between-the-R-gbm-gradient-boosting-machine-and-xgboost-extreme-gradient-boosting

https://xgboost.readthedocs.io/en/latest/tutorials/model.html

票数 66
EN

Data Science用户

发布于 2017-02-13 06:48:52

除了Icy刀片给出的答案外,xgboost的开发人员还对实现的不同部分进行了一些重要的性能增强,从而大大提高了速度和内存利用率:

  1. 稀疏感知算法在稀疏矩阵中的应用
  2. 改进的数据结构,以更好的处理器缓存利用率,这使它更快。
  3. 更好地支持多核处理,从而减少了整个培训时间。

根据我在训练大型数据集(5条million+记录)时使用GBM和xgboost的经验,我对同一数据集的内存利用率(在R中)有了显著的降低,并且发现更容易使用多个核心来减少培训时间。

票数 20
EN

Data Science用户

发布于 2017-02-11 23:52:07

一个非常重要的区别是xgboost实现了达特河(回归树的退退正则化)

参考资料

Rashmi,K. V.,& Gilad-Bachrach,R. (2015)。Dart:辍学者会遇到多重加性回归树。arXiv预印版arXiv:1505.01866。

票数 15
EN
页面原文内容由Data Science提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://datascience.stackexchange.com/questions/16904

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档