我试图理解GBM和XGBOOST之间的关键区别。我试着搜索它,但是找不到任何好的答案来解释这两种算法之间的区别,以及为什么xgboost几乎总是比GBM表现得更好。是什么让XGBOOST这么快?
发布于 2017-02-12 02:22:53
引用xgboost作者的话:
xgboost和gbm都遵循梯度升压原理。然而,在建模细节方面存在着差异。具体来说,xgboost采用了一种更加正则化的模型形式化来控制过度拟合,从而使其具有更好的性能.我们已经更新了一个关于模型介绍的全面教程,您可能想看看这个教程。不过,升华树介绍这个名为xgboost的名称实际上指的是将计算资源限制在增强树算法上的工程目标。这就是为什么很多人使用xgboost的原因。对于模型,它可能更适合被称为正则梯度增强。
编辑:有一个详细的指南的xgboost,显示了更多的差异。
https://xgboost.readthedocs.io/en/latest/tutorials/model.html
发布于 2017-02-13 06:48:52
除了Icy刀片给出的答案外,xgboost的开发人员还对实现的不同部分进行了一些重要的性能增强,从而大大提高了速度和内存利用率:
根据我在训练大型数据集(5条million+记录)时使用GBM和xgboost的经验,我对同一数据集的内存利用率(在R中)有了显著的降低,并且发现更容易使用多个核心来减少培训时间。
发布于 2017-02-11 23:52:07
一个非常重要的区别是xgboost实现了达特河(回归树的退退正则化)。
Rashmi,K. V.,& Gilad-Bachrach,R. (2015)。Dart:辍学者会遇到多重加性回归树。arXiv预印版arXiv:1505.01866。
https://datascience.stackexchange.com/questions/16904
复制相似问题