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

相关推荐
飞哥数智坊1 天前
我的“龙虾”罢工了!正好对比下GLM、MiniMax、Kimi 3家谁更香
人工智能
风象南1 天前
很多人说,AI 让技术平权了,小白也能乱杀老师傅 ?
人工智能·后端
董董灿是个攻城狮1 天前
大模型连载1:了解 Token
人工智能
RoyLin1 天前
沉睡三十年的标准:HTTP 402、生成式 UI 与智能体原生软件的时代
人工智能
灵感__idea1 天前
Hello 算法:众里寻她千“百度”
前端·javascript·算法
needn1 天前
TRAE为什么要发布SOLO版本?
人工智能·ai编程
毅航1 天前
自然语言处理发展史:从规则、统计到深度学习
人工智能·后端
前端付豪1 天前
LangChain链 写一篇完美推文?用SequencialChain链接不同的组件
人工智能·python·langchain
ursazoo1 天前
写了一份 7000字指南,让 AI 帮我消化每天的信息流
人工智能·开源·github
_志哥_1 天前
Superpowers 技术指南:让 AI 编程助手拥有超能力
人工智能·ai编程·测试