Python 中 LightGBM 概述
1. 介绍 LightGBM
LightGBM 是一个开源的基于树的集成梯度提升框架(https://github.com/microsoft/LightGBM )。它专注于提高速度、减少内存使用并提升准确性,尤其适用于高维度和大数据集问题。
LightGBM 支持多种机器学习应用,包括回归、二分类和多分类、交叉熵损失函数以及通过 LambdaRank 进行排序。该算法还可以通过超参数进行高度定制,支持多种指标和特性,如 DART、装袋(随机森林)、连续训练、多指标和提前停止等。
2. LightGBM 优化
LightGBM 核心实现了与标准集成算法相同的算法,但应用了理论和技术优化,以提高性能和准确性,同时显著减少内存使用。以下是一些重要的优化:
- 计算复杂度 :GBDT 算法中最复杂的部分是每次迭代训练回归树,尤其是寻找最优分割点。预排序算法是寻找最佳分割点的常用方法,但即使进行了预排序,对于大型数据集,在决策节点寻找分割点的复杂度仍然很高。
- 基于直方图的采样 :
- 为连续特征构建直方图是预排序的替代方法。连续值被添加到离散的箱中,计算决策节点分割时使用直方图箱,而不是直接使用数据。构建直方图的复杂度为 $O(\text{#data})$,构建决策节点的复杂度降低到 $O(\text{#bins})$,由于箱的数量远小于数据量,这显著加快了回归树的构建过程。
- 基于直方图的另一个优化是“直方图减法”,用于构建叶子节点的直方图。可以通过从父节点的直方图中减去叶子节点邻居的直方图来计算,选
超级会员免费看
订阅专栏 解锁全文
18

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



