尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

XGBoost

XGBoost
📅 发布时间:2026/6/19 8:57:37

XGBoost

XGBoost的算法原理

​ 设选择了使用$k$个Tree来拟合数据,XGBoost的原理是使用第一颗树来拟合原始数据,得到$\hat y_1$,然后用$\hat y_1$替换原来的$y$,再用第二颗树来拟合数据。最终的预测结果是每个数的预测结果之和。对于给定的样本点$x_i$,第$k$轮后的总预测值为
$$
\widehat {y}_i{(k)}=\sum_{j=1} f_j(x_i),f_j\in \mathcal{F}
$$

其中,$f_j(x_i)$表示第$j$个软模型的预测值。那么,模型的优化目标就可写成以下形式,
$$
Obj = \sum_{i=1}^{n} \mathcal{L}(y_i,\widehat {y}_i{(k)})+\sum_{j=1}k \Omega(f_j)
$$

其中,$\mathcal{L}(y_i,\widehat {y}_i^{(k)})$表示损失函数,$\Omega(f_j)$表示模型复杂度。模型的迭代过程如下所示
$$
\widehat y_i^{(0)}=0
$$

$$
\widehat y_i^{1}=\widehat y_i^{(0)} + f_1(x_i)
$$

$$
\vdots
$$

$$
\widehat y_i^{k}=\widehat y_i^{(k-1)} + f_k(x_i)
$$

模型的优化目标可以按照以下部分拆分。
$$
Obj=\sum_{i=1}^n \mathcal{L}(y_i,\widehat y_i^{(k-1)} +f_k(x_i)) + \sum_{j=1}^{k-1} \Omega(f_j) +\Omega(f_k)
$$

其中,$\sum_{j=1}^{k-1} \Omega(f_j) $已知,可看作常数,故优化目标可改写为以下形式。
$$
Obj=\sum_{i=1}^n \mathcal{L}(y_i,\widehat y_i^{(k-1)}+f_k(x_i))+\Omega(f_k)
$$

$$
Obj \approx \sum_{i=1}^n [\mathcal{L}(y_i,\widehat y_i^{(k-1)})+\partial_{\widehat y_i^{(k-1)}}(\mathcal{L}(y_i,\widehat y_i^{(k-1)}) \cdot f_k(x_i)+ \frac{1}{2} \partial_{\widehat y_i{(k-1)}}2\mathcal{L}(y_i,\widehat y_i^{(k-1)}) \cdot f_k(x_i)^2]+\Omega(f_k)
$$

令$g_i=\partial_{\widehat y_i^{(k-1)}}(\mathcal{L}(y_i,\widehat y_i^{(k-1)}))$,$h_i=\partial_{\widehat y_i{(k-1)}}2\mathcal{L}(y_i,\widehat y_i^{(k-1)})$

此时,
$$
Obj=\sum_{i=1}^n [g_i \cdot f_k(x_i)+ \frac{1}{2} h_i \cdot f_k(x_i)^2]+\Omega(f_k)
$$

$$
\Omega(f_k)=\gamma \cdot T + \frac{1}{2} \lambda \sum_{j=1}^T\Vert \omega_j \Vert^2
$$

其中,$T$为叶节点个数,$\lambda,\gamma$为超参数,$\omega_j$为叶节点的值。

此时
$$
Obj=\sum_{i=1}^n [g_i \cdot f_k(x_i)+ \frac{1}{2} h_i \cdot f_k(x_i)^2]+\gamma \cdot T + \frac{1}{2} \lambda \sum_{j=1}^T\Vert \omega_j \Vert^2
$$

令$\omega_j$表示叶节点的值,$q(x_i)$表示样本$x_i$所在叶节点位置,所以可以用以下方式表示软模型预测
$$
\omega_{q(x_i)}=f_k(x_i)
$$
于是,优化目标可以改写为
$$
Obj=\sum_{i=1}^n [g_i \cdot \omega_{q(x_i)}+ \frac{1}{2} h_i \cdot \omega_{q(x_i)}^2]+\gamma \cdot T + \frac{1}{2} \lambda \sum_{j=1}^T\Vert \omega_j \Vert^2
$$

$$
I_j={i|q(x_i)=j}
$$

$$
Obj = \sum_{j=1}^T [(\sum_{i \in I_j} g_i) \cdot \omega_j+ \frac{1}{2}(\sum_{i \in I_j} h_j+\lambda) \cdot \omega_j^2]+\lambda T
$$

令$G_j = \sum_{i \in I_j} g_i$,$H_j = \sum_{i \in I_j} h_i$,且均为常数,此时$Obj$可以写为
$$
Obj = \sum_{j=1}^T[G_j \cdot \omega_j+ \frac{1}{2} \cdot(H_j+\lambda) \cdot \omega_j^2]+\gamma T
$$
这是一个一元二次函数,可以求得最优解
$$
\omega_j^* = -\frac{G_j}{H_j+\lambda}
$$
带入$\omega_j^$,求得
$$
Obj^
= - \frac{1}{2} \sum_{j=1}^T \frac {G_j^2}{H_j+\lambda}+\gamma T
$$
那么,如何将这个找到对应的函数呢,也就是每一个小模型。

1、暴力搜索,找寻所有树结构,但是这是超出计算能力了

2、贪心算法

​ 也就是类似于决策树,考虑每一步的信息增益。但这里考虑的信息增益是$Obj$的变化量。、

$$
Gain = Obj_{old}*-Obj_{new}*
$$

这里假设$model_{old}$右侧叶节点包含样本点7、8,左侧包含1、2、3、4、5、6,此时$Obj_{old}^$的值为
$$
Obj_{old}*=-\frac{1}{2}[\frac{(g_7+g_8)2}{h_7+h_8+\lambda} + \frac{(g_1+g_2+\cdots +g_6)^2}{h_1+h_2+\cdots h_6 +\lambda}]+2\gamma
$$
同时,假设根据特征$i$分成的$model_{new}$中,$L$包含1、3、5节点,$R$包含2、4、6节点,此时$Obj_{new}^
$的值为
$$
Obj_{new}*=-\frac{1}{2}[\frac{(g_7+g_8)2}{h_7+h_8+\lambda} + \frac{(g_1+g_3+g_5)^2}{h_1+h_3+h_5 +\lambda}+\frac{(g_2+g_4+g_6)^2}{h_2+h_4+h_6 +\lambda}]+3\gamma
$$

$$
Gain = -\frac{1}{2}[\frac{(g_1+g_2+\cdots +g_6)^2}{h_1+h_2+\cdots h_6 +\lambda}-\frac{(g_1+g_3+g_5)^2}{h_1+h_3+h_5 +\lambda}-\frac{(g_2+g_4+g_6)^2}{h_2+h_4+h_6 +\lambda}]-\gamma
$$

$$
Gain=\frac{1}{2}[\frac{G_L^2}{H_L+\lambda} + \frac{G_R2}{H_R+\lambda}-\frac{(G_L+G_R)2}{H_L+H_R+\lambda}]-\gamma
$$

其中,$G_L=g_1+g_3+g_5$,$H_L=h_1+h_3+h_5$,$G_R=g_2+g_4+g_6$,$H_R=g_2+g_4+g_6$

选取最大的$Gain$来进行生成树。

相关新闻

  • 【K8S】Kubernetes 调度器深度解析:原理与源码分析
  • 深入解析:逻辑回归(Logistic Regression)
  • 题解:qoj6504 Flowers Land 2

最新新闻

  • 2026海淀名表回收实地探店|劳力士欧米茄出手实测,5家门店真实体验复盘 - 逸程
  • 2026年6月水质监测磁翻板液位计知名品牌排行榜:水处理场景适配性深度测评与选型指南 - 仪表品牌排行榜
  • GLM-5系列如何重塑AI编程的确定性与工程可靠性
  • 2026年6月汉中黄金回收六家门店测评实录 - 余生黄金回收
  • 武汉三新职业技术学校-学校介绍以及招生专业2026年 - 武汉中职最新信息发布
  • 沧州黄金回收市场实地测评:六家正规机构横向对比 - 余生黄金回收

日新闻

  • 5分钟掌握Python进化算法:Geatpy高性能优化工具完全指南
  • Microchip 24AA044 EEPROM选型与应用全指南:从参数解析到实战编程
  • 华为的鸿蒙到底有多牛?为什么称作遥遥领先?

周新闻

  • 3步解锁iOS设备:applera1n激活锁绕过完全指南
  • 39 2026 人工智能证书终极盘点,普通人选 AI 证书可以从这些方向入手
  • Redis 暴露公网有多危险?从端口检查到补救步骤

月新闻

  • 【总结】入门篇:50句话让你记住架构核心概念
  • WeChatMsg技术方案解析:实现Mac微信数据自主管理的完整解决方案
  • WeChatMsg:革新性微信数据备份方案,打造你的专属数字记忆库

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号