LightGBM和XGBoost


25

我试图了解哪种更好(更准确,尤其是在分类问题中)

我一直在搜索比较LightGBM和XGBoost的文章,但发现只有两个:

  1. https://medium.com/implodinggradients/benchmarking-lightgbm-how-fast-is-lightgbm-vs-xgboost-15d224568031这仅与速度有关,而与准确性无关。
  2. https://github.com/Microsoft/LightGBM/wiki/Experiments来自LightGBM的作者,LightGBM在那里赢得胜利并不奇怪。

在我的测试中,两种算法的AUC都差不多,但是LightGBM的运行速度快了2至5倍。

如果LGBM太酷了,为什么在这里和Kaggle上我听不到这么多信息:)


谢谢,但是LightGBM也有大多数kaggler使用的R和Python软件包。我在Python中使用它。在我的数据和互联网研究中,LGBM似乎太完美了:非常快,而且准确性也不差。但也许我在这里缺少了一些东西,如果它尚未得到广泛使用的话:)
谢尔盖·尼

Answers:


21

LightGBM是一个很棒的实现,类似于XGBoost,但在某些特定方面有所不同,尤其是在创建树的方式上。

它提供了一些不同的参数,但是大多数参数与其XGBoost的参数非常相似。

如果使用相同的参数,几乎总会得到非常接近的分数。在大多数情况下,培训速度会快2-10倍。


那为什么没有更多的人使用它呢?

XGBoost已经存在了很长时间,并且已经安装在许多机器上。LightGBM相当新,起初没有Python包装器。当前版本更易于安装和使用,因此这里没有障碍。

Kaggle和类似网站上的许多更高级的用户已经在使用LightGBM,并且在每次新竞争中,它都获得越来越多的覆盖。尽管如此,启动脚本通常基于XGBoost,因为人们只是重复使用旧代码并调整一些参数。我敢肯定,一旦有更多关于如何使用它的教程和指南(当前大多数非ScikitLearn指南都集中在XGBoost或神经网络),这种情况将会增加。


谢谢,这很有意义。也许对于顶尖的kagglers来说,计算能力并不是一个大问题,并且保留脚本更容易。
谢尔盖·尼

10

XGBoost现在具有用于树生长的直方图合并选项,类似于LightGBM所使用的一种。尽管算法仍然不完全相同,但它提供了大约相同的加速水平和相似的精度特征。

这里有一些绘图和表格,显示了它们现在如何彼此重合。 https://github.com/dmlc/xgboost/issues/1950

公平地说,LightGBM引用了他们自己的性能测试,显示它们仍然比XGBoost(历史记录)要小,尽管不再相差一个数量级。 https://github.com/Microsoft/LightGBM/blob/master/docs/Experiments.rst#comparison-experiment

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.