LightGBM和XGboost的对比
2018-03-25 12:47
1986 查看
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
中文文档: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
相关文章推荐
- Xgboost与Lightgbm参数对比
- rf,gbdt,xgboost,lightgbm对比
- 机器学习---xgboost与lightgbm效果比较(2)
- Linux使用经验:Ubuntu 安装xgboost和lightgbm(anaconda3)
- boosting-adaboost、GBDT、xgboost、lightGBM
- win10系统下python2.7安装xgboost,lightgbm神器
- CatBoost、LightGBM、XGBoost,这些算法你都了解吗?
- 机器学习---GBDT、xgboost与Light GBM优缺点比较(1)
- GBM,XGBoost,LightGBM
- 关于树的几个ensemble模型的比较(GBDT、xgBoost、lightGBM、RF)
- RF、GBDT、XGBoost、lightGBM原理与区别
- windows10+anaconda2+python2.7+xgboost、lightgbm
- 机器学习时代的三大神器:GBDT,XGBOOST和LightGBM
- GBM 与 GBDT 与 XgBoost
- GBDT安装(xgboost LightGBM)
- 【机器学习笔记】GBM以及xgboost的调参汇总
- GBDT和Xgboost对比
- Gradient Tree Boosting (GBM, GBRT, GBDT, MART)算法解析和基于XGBoost/Scikit-learn的实现
- XGBoost、LightGBM的详细对比介绍
- 用R语言对一个信用卡数据实现logit,GBM,knn,xgboost