Answers:
引用作者xgboost
:
xgboost和gbm都遵循梯度增强的原理。但是,建模细节有所不同。具体来说,xgboost使用更规范化的模型形式化来控制过度拟合,从而使其具有更好的性能。
我们已经更新了关于模型介绍的综合教程,您可能需要看一下。助树介绍
但是,名称xgboost实际上是指旨在推动增强型树算法的计算资源限制的工程目标。这就是为什么许多人使用xgboost的原因。对于模型,将其称为正则化梯度增强可能更合适。
编辑:有一个xgboost 的详细指南,它显示了更多差异。
https://xgboost.readthedocs.io/en/latest/tutorials/model.html
除了Icyblade给出的答案之外,xgboost的开发人员还对实现的不同部分进行了许多重要的性能增强,从而在速度和内存利用率方面产生了很大的不同:
根据我在训练大型数据集(500万条以上记录)时使用GBM和xgboost的经验,我发现同一数据集的内存利用率(R中)显着降低,并且发现使用多核来减少训练时间更容易。
一个非常重要的区别是xgboost
实施了DART,即回归树的辍学正则化。
Rashmi,KV,&Gilad-Bachrach,R.(2015年)。飞镖:退出符合多个加性回归树。arXiv预印本arXiv:1505.01866。
XGBoost的实现存在错误。 在v 082上的GPU上进行训练时,无声地崩溃了。v 0.90也发生在我身上,因此到目前为止,该问题尚未得到解决,并且GitHub中提供的“修复”对我不起作用。
LGBM 2.3.1就像开箱即用一样具有魅力,尽管安装它需要付出更多的努力。到目前为止,在GPU上进行培训还没有问题。
关于XGBoost是“ 这么快 ”,你应该看看这些基准。