LightGBM和XGboost的对比

2017年初,微软开源了新的机器学习框架LightGBM,以GBDT为基础,据说在Higgs数据集上LightGBM比XGBoost快将近10倍,内存占用率大约为XGBoost的1/6
中文文档:http://lightgbm.apachecn.org/cn/latest/index.html

XGBoost是此前最好的Boosting模型,既然传言LightGBM性能更高,那二者有什么不同呢?

一、LightGBM提出的动机:
常用的机器学习算法,例如神经网络等算法,都可以以mini-batch的方式训练,训练数据的大小不会受到内存限制。

而GBDT在每一次迭代的时候,都需要遍历整个训练数据多次。如果把整个训练数据装进内存则会限制训练数据的大小;如果不装进内存,反复地读写训练数据又会消耗非常大的时间。尤其面对工业级海量的数据,普通的GBDT算法是不能满足其需求的。

LightGBM提出的主要原因就是为了解决GBDT在海量数据遇到的问题,让GBDT可以更好更快地用于工业实践。

二、LightGBM和XGBoost的区别:
1、XGBoost使用基于预排序的方法(pre-sorted)的决策树算法,而LightGBM使用基于直方图(Histogram)的决策树算法。预排序算法每遍历一个特征值就需要计算一次分裂的增益,而直方图算法只需要计算k次(k可以认为是常数),时间复杂度从O(data*feature)优化到O(k*features)
注:
2、XGBoost使用的按层生长 (level-wise) 的决策树生长策略,LightGBM使用带有深度限制的按叶子生长 (leaf-wise) 算法,在分裂次数相同的情况下,Leaf-wise可以降低更多的误差,得到更好的精度。Leaf-wise的缺点是可能会长出比较深的决策树,产生过拟合。
3、支持类别特征,不需要独热编码处理
4、优化了特征并行和数据并行算法

综上所述:LightGBM的精度和XGBoost相似,甚至略高于XGBoost,而训练速度远高于XGBoost

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值