一、lightGBM的介绍
1.lightGBM的演进过程

2.AdaBoost算法
AdaBoost(Adaptive Boosting)是一种集成学习算法,通过组合多个弱分类器来构建一个强分类器。它是由Freund和Schapire在1996年提出的,是集成学习中最早被广泛应用的算法之一。
AdaBoost的两个问题:
- 如何改变训练数据的权重或概率分布
- 提高前一轮被弱分类器错误分类的样本的权重,降低前一轮被分对的权重。
- 如何将弱分类器组合成一个强分类器,亦即,每个分类器,前面的权重如何设置
- 采取“多数表决”的方法。加大分类错误率小的弱分类器的权重,使其作用较大,而减小分类错误率大的弱分类器的权重,使其在表决中起作用小一点。
3.GBDT算法以及优缺点
GBDT和AdaBoost很类似,但又有所不同。
-
GBDT和其他Boosting算法一样,通过将表现一般的几个模型(通常是深度固定的决策树)组合在一起来集成一个表现较好的模型。
-
AdaBoost是通过提升错分数据点的权重来定位模型的不足,Gradien Boosting 通过负梯度来识别问题,通过计算负梯度来改进模型,即通过反复地选择一个指向负梯度方向的函数,该算法可以看作在函数空间里对目标函数进行优化。
GBDT的缺点:
GBDT–>预排序方法(pre-sorted)
- 空间消耗大
- 这样的算法需要保存数据的特征值,还保存了特征排序的结果(例如排序后的索引,为了后续快速的计算分割点),这里需要消耗训练数据两倍的内存。
- 时间上也有很大的开销
- 在遍历每一个分割点的时候,都需要进行分裂增益的计算,消耗的代价大。
- 对内存(cache)优化不友好
- 在预排序后,特征对梯度的访问是一种随机访问,并且不同的特征方法访问的顺序不一样,无法对cache进行优化
- 同时,在每一层长树的时候,需要随机访问一个行索引到叶子索引的数组,并且不同特征访问的顺序也不一样,也会造成较大的内存损失(cache miss)
4.什么是lightGBM?
LightGBM(Light Gradient Boosting Machine)是一种基于梯度提升树(Gradient Boosting Decision Tree)的机器学习算法,它是由微软公司开发的一种高效、快速的梯度提升框架。
与传统的梯度提升树算法相比,LightGBM 在训练和预测的速度上具有较大的优势。这主要得益于以下几个方面的改进:
- 基于直方图的决策树算法:LightGBM 使用了基于直方图的决策树算法,将连续特征离散化成离散的直方图特征,从而减少了数据的存储空间和计算复杂度。这种离散化方法可以降低特征处理的复杂性,并且能够更好地处理高维稀疏数据。
- 垂直并行化训练算法:LightGBM 使用了一种称为 GOSS(Gradient-based One-Side Sampling)的采样方法和 EFB(Exclusive Feature Bundling)的特征捆绑方法,使得模型在训练过程中可以进行高效的垂直并行化计算。这样可以加快模型的训练速度,并且在处理大规模数据集时尤为有效。
- Leaf-wise生长策略:传统的梯度提升树算法是按层生长的,而 LightGBM 使用了一种称为 Leaf-wise 的生长策略。Leaf-wise 生长策略每次选择当前最优的叶子节点进行分裂,这样可以更快地找到损失函数减小最快的方向,从而加快了模型的训练速度。
- 内存优化:LightGBM 使用了特殊的数据结构和压缩技术,减少了内存的使用。它采用了按列存储的方式,可以减少内存访问的次数,提高数据读取的效率。此外,LightGBM 还支持将数据集加载到内存中的子样本中进行训练,以减少内存的占用。
总之,LightGBM 是一种高效、快速、可扩展的梯度提升树框架,适用于处理大规模数据集和高维稀疏数据。它在许多机器学习任务中表现出色,包括分类、回归、排序、推荐等。
5.lightGBM的优缺点
lightGBM是一种梯度提升决策树(Gradient Boosting Decision Tree)算法的改进版,具有以下优点和缺点:
优点:
- 高效性:lightGBM采用了基于直方图的决策树算法和leaf-wise生长策略,在训练速度上比传统的梯度提升算法(如XGBoost)更快。它通过对特征值进行离散化处理,减少了算法中的计算量。
- 低内存占用:lightGBM使用了特征压缩技术和直方图算法,可以减少内存的占用,尤其适用于处理高维稀疏数据。
- 高准确性:lightGBM在处理大规模数据集时,能够更准确地捕捉特征之间的细微差异和复杂的模式,从而提高了模型的预测性能。
- 可扩展性:lightGBM支持并行化训练和多线程处理,可以有效利用多核CPU的计算资源,加快训练速度。
- 可定制性:lightGBM提供了丰富的超参数调节选项和灵活的模型配置,使用户能够根据具体需求进行定制和优化。
缺点:
- 对噪声敏感:由于lightGBM使用了leaf-wise生长策略,它对噪声和异常值比传统算法更敏感,可能会导致过拟合的风险增加。
- 需要调参:虽然lightGBM提供了丰富的超参数选项,但是选择合适的超参数需要一定的经验和调参工作,这对于新手来说可能会有一定的挑战。
- 数据依赖性:lightGBM的性能在很大程度上依赖于数据的特征和分布情况。对于某些特定类型的数据集,可能不一定比传统算法表现更好。
总体来说,lightGBM是一种高效、准确且可扩展的机器学习算法,特别适用于处理大规模、高维稀疏数据集。它在处理效率和预测性能上具有优势,但在对噪声敏感和超参数调节上需要注意。
二、lightGBM的算法原理介绍
1.lightGBM的算法原理
LightGBM(Light Gradient Boosting Machine)是一种基于梯度提升树(Gradient Boosting Decision Tree)的机器学习算法。它的算法原理如下:
- 梯度提升树(Gradient Boosting Decision Tree):
- 梯度提升树是一种集成学习方法,通过将多个决策树集成起来进行预测。
- 每个决策树都是在前一棵决策树的残差基础上进行训练,逐步减小残差,从而逐步改进预测结果。
- 梯度提升树使用梯度下降的思想,通过最小化损失函数的负梯度来训练每棵树。
- LightGBM的优化:
- 基于直方图的决策树算法:LightGBM采用了基于直方图的决策树算法,将连续特征离散化成离散的直方图特征,从而降低了计算复杂度。
- lightGBM的直方图做差加速:一个叶子的直方图可以由它的父亲节点的直方图与它兄弟节点的直方图做差得到。利用这个方法,lightGBM可以在构造一个叶子的直方图后,可以用非常微小的代价得到它兄弟的直方图,在速度上可以提升一倍。
- Leaf-wise生长策略:LightGBM采用了一种称为 Leaf-wise 的生长策略,每次选择当前最优的叶子节点进行分裂,加快了模型的训练速度。
- 直接支持类别特征:lightGBM优化了对类别特征的支持,可以直接输入类别特征,不需要额外的0/1转化。并在决策树算法上增加了类别特征的决策规则。lightGBM是第一个直接支持类别特征的GBDT工具。
- 直接支持高效并行:ightGBM还具有支持高效并行的优点。lightGBM原生支持并行学习,目前支持特征并行和数据并行两种。
- 垂直并行化训练算法:LightGBM使用了一种称为 GOSS(Gradient-based One-Side Sampling)的采样方法和 EFB(Exclusive Feature Bundling)的特征捆绑方法,使得模

本文介绍了lightGBM的演进过程,包括AdaBoost和GBDT的基础知识。lightGBM通过基于直方图的决策树、leaf-wise生长策略、GOSS采样方法和EFB特征捆绑等优化,实现了训练和预测的高效性。同时,文章讨论了lightGBM的优缺点,如对噪声敏感和需要调参,并提供了API介绍和简单案例,展示了如何在实践中使用lightGBM进行模型训练和调优。
最低0.47元/天 解锁文章
1425

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



