XGBoost三部曲:XGBoost原理
一直想把XGBoost和Lightgbm的原理及应用梳理完分享给大家,但是内容有点多,也有些存疑的点在慢慢厘清,这篇文章也是断断续续在整理。今天终于梳理完XGBoost原理啦,希望对大家有帮助。XGBoost算法是一种集成学习算法,属于Boosting类型,通过叠加多个决策树的预测结果得出最终的预测结果。
这个算法基于GBDT,对树模型基础知识不了解的小伙伴可以翻看之前的文章:Python中调用sklearn决策树、一文弄懂随机森林的原理和应用、一文弄懂GBDT原理和应用。
文章目录
- 一、名词解释
- 二、补充XGBoost算法用到的数学基础
- 1 泰勒公式
- 2 一元二次方程求最值
- 三、XGBoost算法原理详解
- 1 XGBoost算法原理理解简单案例
- 2 XGBoost算法原理公式推导
- 2.1 目标函数
- 2.2 损失函数
- 2.3 正则项
- 2.4 打分函数的计算
- 四、XGBoost算法如何生成树
- 1 单个变量如何找到最优划分点
- 2 如何找到最优变量进行树生长
一、名词解释
集成学习:通过构建并结合多个机器学习模型来改善模型的性能。通过训练多个模型,并将它们的预测结果进行某种方式的结合,通常可以得到比单一模型更好的预测结果。
Bagging:是Bootstrap Aggregating的缩写,是一种通过结合多个模型的预测结果来减少模型方差的方法。在Bagging中,每个模型都是在原始数据集的随机子集上进行训练的,这些随机子集是通过有放回的抽样得到的。然后,所有模型的预测结果通过投票(对于分类问题)或平均(对于回归问题)的方式进行结合,典型的代表是随机森林。