ML之LightGBM:LightGBM算法的原理讲解之六大技巧(速度和内存使用的优化、稀疏优化、精度优化、通信优化、分布式学习优化、GPU加速)、三大策略(节点分裂策略思路/构建直方图的思路/处理类别型特征的思路)
目录
Py之lightgbm:lightgbm的简介、安装、使用方法之详细攻略
二、LightGBM算法的原理讲解之六大技巧—速度和内存使用的优化、稀疏优化、精度优化、通信优化、分布式学习优化、GPU加速
1、速度和内存使用的优化:采用直方图替代预排序——四大优点(减少分割增益的计算量/直方图加速(相减)/减少并行学习的通信代价)
2、稀疏优化:稀疏特征仅需O(2 * #non_zero_data)建立直方图
3、精度优化:leaf-wise代替level-wise、类别特征值的最优分割(根据训练目标相关性重排)
(1)、Leaf-wise (Best-first) 的决策树生长策略:叶子结点优先(leaf-wise,更低损失+非对称树)生长、代替逐层生长(level-wise,对称树)
(2)、类别特征值的最优分割:OH编码不适合高基数、根据训练目标相关性重排进而寻找最优分割点
5、分布式学习优化→减少通讯开销:FP特征并行、DP数据并行、VP投票并行
5.1、FP特征并行:抛弃垂直划分数据+各线程持有全部→无需为切分结果通信
5.2、DP数据并行:采用Reduce Scatter(减少散射)整合+局部的最佳划分同步到全局中、单叶子的直方图通信+减法获取邻节点的直方图
(1)、首先,LightGBM 将训练集按照 X1 进行排序,并将其划分为多个直方图
(2)、对于每一个直方图,LightGBM 计算基于梯度的直方图梯度
b. 根据当前样本的特征和梯度构建一棵决策树,使用节点分裂策略选择最优的分裂特征和分裂点
c. 计算每个子节点的负梯度和直方图,并使用直方图的信息计算分裂增益
d. 使用所有叶子节点的输出值作为模型的预测结果,对训练数据进行预测。