[机器学习]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 小时前
数据结构基础:B树磁盘IO优化的数据结构艺术
数据结构·b树·python·算法
市象1 小时前
字节AI撒“豆”成兵
人工智能
程序员-King.8 小时前
day158—回溯—全排列(LeetCode-46)
算法·leetcode·深度优先·回溯·递归
康康的AI博客8 小时前
腾讯王炸:CodeMoment - 全球首个产设研一体 AI IDE
ide·人工智能
中达瑞和-高光谱·多光谱8 小时前
中达瑞和LCTF:精准调控光谱,赋能显微成像新突破
人工智能
mahtengdbb18 小时前
【目标检测实战】基于YOLOv8-DynamicHGNetV2的猪面部检测系统搭建与优化
人工智能·yolo·目标检测
Pyeako8 小时前
深度学习--BP神经网络&梯度下降&损失函数
人工智能·python·深度学习·bp神经网络·损失函数·梯度下降·正则化惩罚
月挽清风9 小时前
代码随想录第七天:
数据结构·c++·算法
清 澜9 小时前
大模型面试400问第一部分第一章
人工智能·大模型·大模型面试