当前位置: 首页 > article >正文

[机器学习]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=yy^(只要能函数值越大,预测值与实际值相差越大就行)

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

回归树

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

在回归树中,每个叶节点包含一个数值,这个数值是该节点所代表的样本集合的平均目标值 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的重点


http://www.kler.cn/a/448435.html

相关文章:

  • SQLAlchemy 2.0 高级特性详解
  • Spring(二)---基于注解的方式实现Bean管理和注入属性
  • 大数据机器学习算法和计算机视觉应用07:机器学习
  • 圣诞快乐(h5 css js(圣诞树))
  • K8s 节点 NotReady 后 Pod的变化
  • aioice里面candidate固定UDP端口测试
  • Android水波纹搜索效果
  • Java并发编程框架之综合案例—— 分布式爬虫(四)
  • springboot基于Java的校园导航微信小程序的设计与实现
  • React+Vite项目框架
  • 如何构建一个简单的SpringBoot程序
  • 《软件工程文档攻略:解锁软件开发的“秘籍”》
  • 基于Spring Boot的营销项目系统
  • 题解:单调栈求解良好的感觉
  • leetcode 面试经典 150 题:无重复字符的最长子串
  • [react]searchParams转普通对象
  • 【CVE-2024-56145】PHP 漏洞导致 Craft CMS 出现 RCE
  • vue3 setup模式使用事件总线Event bus用mitt,app.config.globalProperties.$bus
  • MySQL 主从复制与高可用
  • MongoDB(下)
  • 深度学习之目标检测——RCNN
  • 《Java核心技术I》Swing的组合框
  • MongoDB 介绍及 Java 实现基本操作
  • kafka详解
  • Gin-vue-admin(1):环境配置和安装
  • 管理系统、微信小程序类源码文档-哔哩哔哩教程同步