[机器学习]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的重点

相关推荐
飞哥数智坊8 小时前
从CodeBuddy翻车到MasterGo救场,我的小程序UI终于焕然一新
人工智能
AKAMAI10 小时前
跳过复杂环节:Akamai应用平台让Kubernetes生产就绪——现已正式发布
人工智能·云原生·云计算
新智元12 小时前
阿里王牌 Agent 横扫 SOTA,全栈开源力压 OpenAI!博士级难题一键搞定
人工智能·openai
新智元12 小时前
刚刚,OpenAI/Gemini 共斩 ICPC 2025 金牌!OpenAI 满分碾压横扫全场
人工智能·openai
机器之心12 小时前
OneSearch,揭开快手电商搜索「一步到位」的秘技
人工智能·openai
阿里云大数据AI技术12 小时前
2025云栖大会·大数据AI参会攻略请查收!
大数据·人工智能
YourKing13 小时前
yolov11n.onnx格式模型转换与图像推理
人工智能
sans_13 小时前
NCCL的用户缓冲区注册
人工智能
sans_13 小时前
三种视角下的Symmetric Memory,下一代HPC内存模型
人工智能
算家计算13 小时前
模糊高清修复真王炸!ComfyUI-SeedVR2-Kontext(画质修复+P图)本地部署教程
人工智能·开源·aigc