[机器学习]XGBoost(1)——前置知识

XGBoost简介

XGBoost(eXtreme Gradient Boosting)是一种一种高效的梯度提升决策树算法,它通过集成多个弱学习器(决策树)来构建一个强学习器。

核心思想:

  • XGBoost的核心思想是Boosting,即通过将多个弱学习器的结果累加来提升模型的整体性能。
  • XGBoost使用前向加法模型,即用多棵树共同决策,并将所有树的结果累加得到最终预测结果

算法原理

XGBoost的目标函数是经验风险加上结构风险(正则项),它通过二阶泰勒展开来近似表达损失函数,从而优化模型

XGBoost在每一步迭代中只优化当前步中的子模型,通过累加每棵树的结果来得到最终的预测值

对比其他算法

与GBDT对比:XGBoost解决了GBDT在效率、并行化等方面的局限性,提供了更多的参数调节选项

与随机森林对比:XGBoost通过梯度提升和正则化实现更强的模型表达能力,通常在准确度上优于随机森林

前置知识

参数空间和函数空间

参数空间和函数空间是机器学习中的两种不同的优化空间。

参数空间是指模型参数构成的空间。例如,在线性回归模型中,模型的参数是斜率和截距,这两个参数构成了一个二维的参数空间。在这个空间中,每一点都对应一个可能的模型。优化算法(如梯度下降)在参数空间中寻找最优的参数组合,以最小化损失函数。

函数空间则是指所有可能的函数构成的空间。在函数空间中,每一点都代表一个可能的函数。例如,在梯度提升决策树(GBDT)或XGBoost中,模型实际上是在函数空间中进行优化的。这些模型通过在每一步添加一个新的函数(例如,一个新的决策树),来逐步改进模型的预测。

学习GBDT/xgboost之前要明白的一点是:梯度提升的算法是定义在函数空间里的,而梯度下降的那些算法是定义在参数空间里的,也就是用参数矩阵θ来表示模型。在XGBoost里是没有参数的,损失函数可以是任意可微的函数,比如 m 2 + m 4 m^2+m^4 m2+m4, m = y − y ^ m=y-\hat y m=y−y^(只要能函数值越大,预测值与实际值相差越大就行)

所以,当我们说"梯度下降定义在参数空间中",是指梯度下降算法在参数空间中寻找最优参数。而当我们说"梯度提升定义在函数空间中",是指梯度提升算法在函数空间中寻找最优函数。

回归树

回归树是一种决策树的变体,用于预测连续值。

在回归树中,每个叶节点包含一个数值,这个数值是该节点所代表的样本集合的平均目标值 y i y_i yi。在树的每个节点,我们根据某个特征的阈值来决定数据应该被分配到哪个子节点。

公式

在回归树中,对于给定的样本 x ,我们使用以下公式来预测其目标值:
T ( θ , x ) = W q ( x ) T(θ, x) = W_q(x) T(θ,x)=Wq(x)

这里, T ( θ , x ) T(θ,x) T(θ,x) 是预测函数, θ θ θ 表示树的结构和参数, x x x 是输入特征向量, q ( x ) q(x) q(x) 是样本在回归树中最终应该被分配到的叶节点,而 W q ( x ) W_q(x) Wq(x) 是样本 x x x 根据树的结构被分配到的叶节点的值。

输入一个样本,输出一个叶子节点的平均目标值

问题

这个公式只能表示最终的叶子节点以及它所代表的值,不能表达叶子节点以上的结构,而这正是XGBooost的重点

相关推荐
猿饵块36 分钟前
视觉slam--框架
人工智能
yvestine2 小时前
自然语言处理——Transformer
人工智能·深度学习·自然语言处理·transformer
有梦想的骇客2 小时前
书籍将正方形矩阵顺时针转动90°(8)0605
线性代数·算法·矩阵
SuperW2 小时前
OPENCV图形计算面积、弧长API讲解(1)
人工智能·opencv·计算机视觉
有梦想的骇客2 小时前
书籍“之“字形打印矩阵(8)0609
java·算法·矩阵
Chenyu_3103 小时前
12.找到字符串中所有字母异位词
c语言·数据结构·算法·哈希算法
苏三福3 小时前
yolo11-seg ultralytics 部署版本
算法·yolo11
山海不说话3 小时前
视频行为标注工具BehaviLabel(源码+使用介绍+Windows.Exe版本)
人工智能·python·计算机视觉·视觉检测
虹科数字化与AR4 小时前
安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)
人工智能·ar·ar眼镜·船舶智造·数字工作流·智能装配
飞哥数智坊5 小时前
Coze实战第13讲:飞书多维表格读取+豆包生图模型,轻松批量生成短剧封面
人工智能