Lightgbm改进的点:
基于Histogram的决策树算法
带深度限制的Leaf-wise的叶子生长策略
直方图做差加速
直接支持类别特征(Categorical Feature)
Cache命中率优化
基于直方图的稀疏特征优化
多线程优化
下面主要介绍Histogram(直方图)做差加速、带深度限制的Leaf-wise的叶子生长策略。
- 基于histogram的决策树算法
直方图算法的基本思想是先把连续的浮点特征值离散化成k个整数,同时构造一个宽度为k的直方图。在遍历数据的时候,根据离散化后的值作为索引在直方图中累积统计量,当遍历一次数据后,直方图累积了需要的统计量,然后根据直方图的离散值,遍历寻找最优的分割点。

而xgboost中的做法是先对特征进行排序,然后按块存储,然后并行计算不同特征的分割点。
对比以下:
优点:直方图算法不仅不需要额外存储预排序的结果,而且可以只保存特征离散化后的值,而这个值一般用8位整型存储就足够了,内存消耗可以降低为原来的1/8。在计算上的代价也大幅降低,预排序算法每遍历一个特征值就需要计算一次分裂的增益,而直方图算法只需要计算k次(k可以认为是常数),时间复杂度从O(#data*#feature)优化到O(k*#features)。
缺点:不能找到精确的分割点,但由于分割点误差并不是太大。,且实际上可能决策树对于分割点的精确程度并不太敏感,而且较“粗”的分割点也自带正则化的效果。 - 直方图做差加速
一个叶子的直方图可以由它的父亲节点的直方图与它兄弟的直方图做差得到。通常构造直方图,需要遍历该叶子上的所有数据,但直方图做差仅需遍历直方图的k个桶。利用这个方法,LightGBM可以在构造一个叶子的直方图后,可以用非常微小的代价得到它兄弟叶子的直方图,在速度上可以提升一倍。

本文介绍了LightGBM相对于XGBoost的改进,包括基于Histogram的决策树算法,使用Leaf-wise的叶子生长策略,直方图做差加速,以及直接支持类别特征。直方图算法减少了内存消耗和计算成本,而Leaf-wise策略提高了训练效率。LightGBM还支持高效并行学习,包括特征并行和数据并行,降低了过拟合风险。
最低0.47元/天 解锁文章
859

被折叠的 条评论
为什么被折叠?



