XGBoost算法背后的数学:尽可能简单地解释XGBoost算法背后的数学机制(一)

简介: XGBoost算法背后的数学:尽可能简单地解释XGBoost算法背后的数学机制(一)

640.png

如果你想很好地理解某些内容,请尝试简单地给别人解释出来。——费曼

XGBoost是一个很优美的算法,它的过程不乏启发性。这些通常简单而美丽的概念在数学术语中消失了。我在理解数学的过程中也遇到过同样的挑战,所以我写这篇文章的目的是巩固我的理解,同时帮助其他人完成类似的过程。

为了解XGBoost是什么,我们首先要了解什么是梯度提升机Gradient Boosting,以及梯度提升机背后的数学概念。请注意,这篇文章假设你对梯度提升机非常熟悉,并试图触及梯度提升机和XGBoost背后的直觉和数学。现在我们开始吧。

理解梯度提升机

第一步 - 初始函数

与往常一样,让我们从粗略的初始函数F0开始,类似于回归时所有值的平均值。它将为我们提供一些输出,无论效果如何。

第二步 - 损失函数

下面我们计算损失函数L(y_i,F_t (x_i))

那么什么是损失函数?它是一种度量预测值与真实值之间差异的算式,这里有几个例子:

image.png

从下表可以理解为什么对异常值的鲁棒性很重要:

640.png

其思想是,损失函数的值越低,我们的预测就越准确,所以获取最佳的预测值等价为损失函数的最小化问题。

第三步 - 新的目标

到目前为止,我们已经建立了我们的初始模型,并进行了预测。接下来,我们应该在损失函数给出的残差上拟合一个新模型,但有一个微妙的转折:我们将拟合损失函数的负梯度,下面给出我们为什么这样做以及为什么它们相似的直觉:

640.png

梯度可以解释为函数的“最快增加的方向和速率”,因此负梯度告诉我们函数最小值的方向,在这种情况下为损失函数的最小值。

我们将遵循梯度下降法,逐步逼近损失函数的极小值,算法的学习速率将给出每一次更新的步长。在损失函数最小的情况下,我们的错误率也最低。

因此,我们将在损失函数的-ve梯度处建立新模型hₜ₊₁

640.png

第四步 - 累加

-ve梯上迭代拟合模型的过程将继续进行,直到我们达到给定的弱学习器数量的最小值或极限T为止,这称为累加。

640.png

回想一下,在Adaboost中,模型的“缺点”是由高权重数据点确定的。在梯度提升机中,“缺点”是通过梯度来识别的。

简单来说,这就是梯度提升机的工作机制。在回归和分类任务中,唯一不同的是所使用的损失函数。

目录
相关文章
|
8天前
|
算法
PAI下面的gbdt、xgboost、ps-smart 算法如何优化?
设置gbdt 、xgboost等算法的样本和特征的采样率
23 2
|
7月前
|
机器学习/深度学习 数据采集 算法
Python用逻辑回归、决策树、SVM、XGBoost 算法机器学习预测用户信贷行为数据分析报告
Python用逻辑回归、决策树、SVM、XGBoost 算法机器学习预测用户信贷行为数据分析报告
|
4月前
|
机器学习/深度学习 算法
【Deepin 20系统】机器学习分类算法模型xgboost、lightgbm、catboost安装及使用
介绍了在Deepin 20系统上使用pip命令通过清华大学镜像源安装xgboost、lightgbm和catboost三个机器学习分类算法库的过程。
74 4
|
5月前
|
并行计算 算法 Python
Dantzig-Wolfe分解算法解释与Python代码示例
Dantzig-Wolfe分解算法解释与Python代码示例
|
6月前
|
机器学习/深度学习 数据采集 存储
算法金 | 决策树、随机森林、bagging、boosting、Adaboost、GBDT、XGBoost 算法大全
**摘要:** 这篇文章介绍了决策树作为一种机器学习算法,用于分类和回归问题,通过一系列特征测试将复杂决策过程简化。文章详细阐述了决策树的定义、构建方法、剪枝优化技术,以及优缺点。接着,文章讨论了集成学习,包括Bagging、Boosting和随机森林等方法,解释了它们的工作原理、优缺点以及如何通过结合多个模型提高性能和泛化能力。文中特别提到了随机森林和GBDT(XGBoost)作为集成方法的实例,强调了它们在处理复杂数据和防止过拟合方面的优势。最后,文章提供了选择集成学习算法的指南,考虑了数据特性、模型性能、计算资源和过拟合风险等因素。
84 0
算法金 | 决策树、随机森林、bagging、boosting、Adaboost、GBDT、XGBoost 算法大全
|
6月前
|
算法 Java Go
斐波那契数列是一个非常经典的数学问题,在计算机科学中也经常被用作算法设计和分析的例子。
斐波那契数列是一个非常经典的数学问题,在计算机科学中也经常被用作算法设计和分析的例子。
|
5月前
|
机器学习/深度学习 数据采集 算法
Python实现xgboost分类模型(XGBClassifier算法)项目实战
Python实现xgboost分类模型(XGBClassifier算法)项目实战
|
5月前
|
算法 安全 网络安全
支付系统,网络安全06----支付安全---,机密性,加密算法,目前最流行的加密算法,AES加密算法,目前最流行的非对称加密算法RSA,对称加密和非对称加密的优缺点,非对称加密是基于非常复杂的数学算法
支付系统,网络安全06----支付安全---,机密性,加密算法,目前最流行的加密算法,AES加密算法,目前最流行的非对称加密算法RSA,对称加密和非对称加密的优缺点,非对称加密是基于非常复杂的数学算法
|
6月前
|
存储 算法 安全
深入解析RSA算法原理及其安全性机制
深入解析RSA算法原理及其安全性机制
|
6月前
|
机器学习/深度学习 自然语言处理 算法
XGBoost算法
XGBoost是高效、灵活且强大的梯度提升决策树算法,擅长处理结构化数据,广泛应用在数据挖掘和Kaggle竞赛中。它通过迭代地添加决策树优化目标函数,支持自定义损失函数和正则化以防止过拟合。与AdaBoost相比,XGBoost支持更复杂的基分类器,如线性模型,使用二阶导数加速优化,并有内置并行处理能力。XGBoost在模型构建时考虑缺失值处理,并提供了Python等多语言接口,便于参数调优和模型评估,如使用GridSearchCV进行交叉验证。