LightGBM - 架构
LightGBM 以叶节点方式划分树,而其他增强算法则以级别方式构建树。它选择它认为会导致损失函数最大减少的叶子进行拆分。叶节点基于其对全局损失的贡献而不是特定分支上的损失生成拆分,因此它有时比级别方式"更快地"学习低错误树。
下图显示了假设二叉叶节点树到假设二叉级别树的拆分顺序。有趣的是,叶节点树可以有多种排序,而级别树始终具有相同的顺序。
叶节点树的生长
叶节点树通过向叶子(分支的末端)添加可以消除大多数错误的分支来生长。将其视为类似于以关注模型出错最多的区域的方式开发树,并根据需要添加分支。
这种方法使树在最重要的部分变得更深、更具体,这通常会产生更准确的模型,但也可能导致更复杂的树。
逐级树生长
逐级树通过在所有级别上均匀分布新分支(叶子)来生长。考虑一棵树一次长出一层分支。它从第 1 级添加分支开始,然后进展到第 2 级,依此类推。
这可以维护和减少树,但它可能并不总是最好的选择,因为它没有关注需要更多细节的区域。
LightGBM 架构的关键组件
LightGBM 的架构是为了优化性能、内存效率和模型一致性而创建的。以下是简要概述 −
逐叶树生长:LightGBM 通过首先扩展最重要的部分来生长树,从而产生更深、更准确的整体树。
基于直方图的学习:它通过将数据分类到 bin(桶)中来加快训练速度,从而减少了找到最佳分割所需的时间和内存。
基于梯度的单侧采样 (GOSS):GOSS 仅选择最重要的数据点来加快训练速度,同时保持准确性。
独家特征捆绑 (EFB):EFB 结合了罕见的特征以节省内存并加快计算速度,这使其适用于具有大量特征的数据。
并行和 GPU 处理: LightGBM 可以使用多个 CPU 核心或 GPU 来更快地训练模型,主要用于大型数据集。
LightGBM 的设计使用逐叶树生长、基于直方图的学习、GOSS 和 EFB 方法,以在保持高精度的同时最大限度地提高性能和内存使用率。其并行和 GPU 处理能力使其非常适合高效完成大规模机器学习任务。