算法工程师
常见面试问题总结之LightGBM常见面试题总结
理论知识:通俗易懂的LightGBM理论知识
LightGBM是什么:LightGBM(Light Gradient Boosting Machine)是一个实现GBDT算法的框架
,支持高效率的并行训练,并且具有更快的训练速度、更低的内存消耗、更好的准确率、支持分布式可以快速处理海量数据等优点。
1.LightGBM算法对XGBoost算法进行了什么优化
XGBboos相对LightGBM的缺点:
1) 空间消耗大:存储连续数据值为32位的浮点型,提前预排序和预存储,保存排序后的索引,消耗数据的两倍内存;
2)计算消耗大:每次都需要遍历,都需要 进行分裂增益计算(对于连续值而言比较复杂,以及所有的特征都要遍历)
3) cache优化不友好:在预排序后,特征对梯度的访问是一种随机访问,并且不同的特征访问的顺序不一样,无法对cache进行优化。
LightGBM优化:
1)基于Histogram的决策树法 (降低了存储使用和提高了寻找最优分裂点的速度)
2)等深度限制的leaf-wise的叶子生长策略:(减少不必要的分裂,提高训练速度和改善过拟合)
3)直方图差加速(一个叶子的直方图可以由它的父亲节点的直方图与它兄弟的直方图做差得到,提高训练速度)
4)直接支持类别特征(直接输入类别特征,不需要额外的0/1展开,提高预处理速度)
5)单边梯度采样法(梯度大的保留,梯度小的按比例抽取,提高训练速度)
6)互斥特征捆绑:(减少用于构建直方图的特征数量,提高训练速度和改善过拟合)
7)支持高效并行:(多台机子并行处理数据,再进行数据合并)
8)Cache命中率优化(lightGBM划分的特征分桶就是有顺序的,所以无需额外存储叶子索引的数组)
LightGBM缺点:
- leaf-wis