首页 百问百答 帖子详情
lightgbm和xgboost的区别
收藏
快速回复
百问百答 问答学习资料 527 0
lightgbm和xgboost的区别
收藏
快速回复
百问百答 问答学习资料 527 0

常用的机器学习算法,例如神经网络,都是在总数据集中每次抽取mini-batch的量对模型进行训练。而GBDT在每次迭代中,都需要遍历整个数据集。如果都装进内存则会限制总数据量的大小,而如果存在硬盘中,反复的读写则会非常的耗时,对于工业级海量数据而言,一般的GBDT算法不能满足需求。

lightgbm与xgboost的区别如下:

(1)XGBoost使用基于预排序(pre-sorted)的决策树算法,而LightGBM使用基于直方图(Histogram)的决策树算法。预排序算法每遍历一个特征值就需要计算一次分裂的增益,而直方图算法只需要计算k次(k可以认为是常数),计算复杂度从O(datafeature)优化到O(kfeatures)。

(2)XGBoost使用的按层生长 (level-wise) 的决策树生长策略,LightGBM使用带有深度限制的按叶子生长 (leaf-wise) 算法,在分裂次数相同的情况下,Leaf-wise可以降低更多的误差,得到更好的精度。Leaf-wise的缺点是可能会长出比较深的决策树,产生过拟合。

(3)LightGBM支持类别特征,不需要独热编码处理

LightGBM是2017年初微软开源的框架,算法基础是GBDT,其在Higgs数据集上要比XGBoost快10倍,而内存使用率仅为后者1/6。

0
收藏
回复
在@后输入用户全名并按空格结束,可艾特全站任一用户