LightGBM三部曲:LightGBM原理
一直想把XGBoost和LightGBM的原理及应用梳理完分享给大家,但是内容有点多,也有些存疑的点在慢慢厘清,这篇文章也是断断续续在整理。今天终于梳理完Lightgbm原理啦,希望对大家有帮助。
对XGBoost原理、参数详解、实战感兴趣可翻看历史文章:XGBoost三部曲:XGBoost原理、XGBoost三部曲:XGBoost参数详解、XGBoost三部曲:XGBoost实战。
LigthGBM是微软开发的一款高性能梯度提升框架,是一种集成学习算法,属于Boosting类型,通过叠加多个决策树的预测结果得出最终的预测结果。这个算法基于GBDT,对树模型基础知识不了解的小伙伴可以翻看之前的文章:Python中调用sklearn决策树、一文弄懂随机森林的原理和应用、一文弄懂GBDT原理和应用。
文章目录
-
- 一、名词解释
- 二、为什么需要LightGBM
- 三、核心引擎:损失函数求解与叶子节点生成图片
-
- 1 LightGBM算法原理理解简单案例
- 2 LightGBM算法原理公式推导
-
- 2.1 目标函数
- 2.2 损失函数
- 2.3 正则项
- 2.4 打分函数的计算
- 2.5 如何确定树结构
- 四、核心创新原理
-
- 1 基于直方图的决策树算法
- 2 单边梯度采样
- 3 互斥特征捆绑
- 五、其他优化技术
-
- 1 叶子生长策略
- 2 直接支持类别特征
- 六、性能对比
- 七、适用场景
一、名词解释
集成学习:通过构建并结合多个机器学习模型来改善模型的性能。通过训练多个模型,并将它们的预测结果进行某种方式的结合,通常可以得到比单一模型更好的预测结果。
Bagging:是Bootstrap Aggregating的缩写,是一种通过结合多个模型的预测结果来减少模型方差的方法。在Bagging中,每个模型都是在原始数据集的随机子集上进行训练的,这些随机子集是通过有放回的抽样得到的。然后,所有模型的预测结果通过投票(对于分类问题)或平均(对于回归问题)的方式进行结合,典型的代表是随机森林。
Boosting:基本思想是三个臭皮匠赛过诸葛亮。算法思路是采用串行的方式训练基分类器,每一层在训练时,给前一层基分类器分错的样本更高的权重,最后把各层分类器的结果层层加权叠加得到最终的结果。
GBDT:是Gradient Boosting Decision Tree的缩写,是一种基于决策树的集成学习算法,也是一种迭代式的boosting算法。基本原理是迭代地训练决策树,每次训练都基于之前训练结果来进行优化。训练过程基于梯度下降的思想,使用了加法模型和函数优化方法。
XGBoost :是eXtreme Gradient Boosting的缩写,是一个优化的分布式梯度增强库,是梯度提升算法的一种高效实现。它的核心在于将许多弱分类器(通常是决策树)组合成一个强大的分类器。每一个新的弱分类器都致力于纠正之前所有弱分类器的错误,通过不断迭代
