- LightGBM 教程
- LightGBM - 首页
- LightGBM - 概述
- LightGBM - 架构
- LightGBM - 安装
- LightGBM - 核心参数
- LightGBM - Boosting 算法
- LightGBM - 树的生长策略
- LightGBM - 数据集结构
- LightGBM - 二分类
- LightGBM - 回归
- LightGBM - 排序
- LightGBM - Python 实现
- LightGBM - 参数调优
- LightGBM - 绘图功能
- LightGBM - 早停训练
- LightGBM - 特征交互约束
- LightGBM 与其他 Boosting 算法对比
- LightGBM 有用资源
- LightGBM - 有用资源
- LightGBM - 讨论
LightGBM - 架构
LightGBM 按叶子节点(leaf-wise)方式分裂树,而其他 Boosting 算法则按层级(level-wise)方式构建树。它会选择它认为会导致损失函数最大下降的叶子节点进行分裂。Leaf-wise 方式根据叶子节点对全局损失的贡献进行分裂,而不是特定分支上的损失,因此它有时比 level-wise 方式“更快”地学习到错误更低的树。
下图显示了一个假设的二叉 leaf-wise 树与一个假设的二叉 level-wise 树的分裂顺序。有趣的是,leaf-wise 树可以有多种排序,而 level-wise 树始终具有相同的顺序。
Leaf-wise 树的生长
Leaf-wise 树通过向能够消除大部分错误的叶子节点(分支末端)添加分支来生长。可以将其理解为以关注模型犯错最多区域的方式来发展树,仅在需要时添加分支。
这种方法使树在最重要的部分变得更深、更具体,这通常会产生更准确的模型,但它也可能导致更复杂的树。
Level-wise 树的生长
Level-wise 树通过在所有层级上均匀地扩展新的分支(叶子)来生长。可以将其理解为一棵树一次生长一层分支。它首先在第 1 层添加分支,然后推进到第 2 层,依此类推。
这保持并减少了树的复杂度,但它可能并不总是最佳选择,因为它没有关注需要更多细节的区域。
LightGBM 架构的关键组件
LightGBM 的架构旨在优化性能、内存效率和模型一致性。以下是快速概述 -
Leaf-Wise 树的生长:LightGBM 通过首先扩展最重要的部分来生长树,从而产生更深、更准确的树,并具有更少的整体树。
基于直方图的学习:它通过将数据分类到箱(桶)中来加速训练,从而减少查找最佳分裂所需的时间和内存。
基于梯度的单边采样 (GOSS):GOSS 只选择最重要的数据点来加速训练,同时保持准确性。
独占特征捆绑 (EFB):EFB 将很少出现的特征组合在一起以节省内存并加速计算,这使得它对于具有大量特征的数据非常有用。
并行和 GPU 处理:LightGBM 可以通过使用多个 CPU 内核或 GPU 来更快地训练模型,主要针对大型数据集。
LightGBM 的设计使用 leaf-wise 树的生长、基于直方图的学习、GOSS 和 EFB 方法来最大化性能和内存使用,同时保持高准确性。它的并行和 GPU 处理能力使其非常适合高效地完成大规模机器学习任务。