news 2026/8/14 13:05:44

GBDT 回归任务生成过程(逐步计算演示)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
GBDT 回归任务生成过程(逐步计算演示)

GBDT 是Gradient Boosting Decision Tree的缩写,中文名为梯度提升决策树,是一种经典的集成学习算法,核心逻辑是串行生成多棵 CART 回归树,每一棵新树都用来拟合前一轮模型的预测残差,最终将所有树的预测结果累加,得到最终模型。

关键前提:GBDT 中所有的基学习器都是CART 回归树,无论任务是分类还是回归。分类任务会通过损失函数的负梯度将标签转换为连续的 “伪残差”,再用回归树拟合。

一、GBDT 核心思想

Boosting 算法的本质是 “知错就改”:

  1. 先训练一棵基础树,用它做预测会产生误差(真实值 - 预测值 = 残差);
  2. 再训练一棵新树,专门拟合这个残差,让新树的预测值尽可能抵消前一轮的误差;
  3. 重复上述过程,生成多棵树;
  4. 最终预测结果 = 所有树的预测结果之和。

类比:你估算一个苹果的重量,第一次猜 200g,实际是 250g → 残差 50g;第二次专门猜这个残差 50g;最终结果 = 200g + 50g = 250g。

5 个房屋价格预测的样本来完整演示第 m 棵树的「计算残差→训练回归树→更新模型」全过程,所有步骤都附带具体数值计算。

GBDT 回归任务生成过程(逐步计算演示)

前置准备

  1. 回归数据集(特征:房屋面积 x,单位:㎡;标签:房价 y,单位:万元)
    样本编号12345
    面积 x5060708090
    房价 y1518222530
  2. 超参数:树的数量 M=2(演示 2 轮迭代),学习率 η=0.1
  3. 初始模型:回归任务的初始模型 f0​(x) 是所有样本标签的均值

第 1 轮迭代:生成第 1 棵树 h1​(x)

步骤 1:计算第 1 轮残差 r1i​

残差的定义是真实值 - 前一轮模型预测值

逐个样本计算残差:

样本编号12345
真实房价 yi​1518222530
前一轮预测值 f0​(xi​)2222222222
残差 r1i​15−22=−718−22=−422−22=025−22=330−22=8

得到第 1 轮残差集合:r1​=[−7,−4,0,3,8]

步骤 2:训练第 1 棵 CART 回归树 h1​(x)

核心目标:用「面积 x」作为特征,「残差 r1i​」作为新标签,训练一棵 CART 回归树,划分准则是平方误差最小化

子步骤 2.1:生成候选阈值

子步骤 2.2:逐个阈值计算平方误差,选最优划分

我们逐个计算候选阈值的平方误差:

候选阈值划分规则左子集 S1​(残差 / 均值)右子集 S2​(残差 / 均值)总平方误差 L
55x≤55 / x>55样本 1(-7)→ rˉ1​=−7样本 2-5(-4,0,3,8)→ rˉ2​=1.75(−7+7)2+[(−4−1.75)2+(0−1.75)2+(3−1.75)2+(8−1.75)2]=0+74.75=74.75
65x≤65 / x>65样本 1-2(-7,-4)→ rˉ1​=−5.5样本 3-5(0,3,8)→ rˉ2​=3.67[(−7+5.5)2+(−4+5.5)2]+[(0−3.67)2+(3−3.67)2+(8−3.67)2]=4.5+33.34=37.84
75x≤75 / x>75样本 1-3(-7,-4,0)→ rˉ1​=−3.67样本 4-5(3,8)→ rˉ2​=5.5[(−7+3.67)2+(−4+3.67)2+(0+3.67)2]+[(3−5.5)2+(8−5.5)2]=24.67+12.5=37.17
85x≤85 / x>85样本 1-4(-7,-4,0,3)→ rˉ1​=−2样本 5(8)→ rˉ2​=8[(−7+2)2+(−4+2)2+(0+2)2+(3+2)2]+(8−8)2=58+0=58

最优划分选择:阈值 = 75 时总平方误差最小(37.17),因此第 1 棵树的划分规则为:

  • 若 x≤75 → 叶子节点 1,预测值 =rˉ1​=−3.67
  • 若 x>75 → 叶子节点 2,预测值 =rˉ2​=5.5

得到第 1 棵树对 5 个样本的预测值 h1​(xi​):

样本编号12345
面积 x50≤7560≤7570≤7580>7590>75
h1​(xi​)-3.67-3.67-3.675.55.5

步骤 3:更新模型,得到 f1​(x)

逐个样本计算更新后的预测值:

样本编号12345
f0​(xi​)2222222222
0.1⋅h1​(xi​)0.1×(−3.67)=−0.37−0.37−0.370.1×5.5=0.550.55
f1​(xi​)22−0.37=21.6321.6321.6322+0.55=22.5522.55

此时模型的预测值已经比初始模型更接近真实房价。


第 2 轮迭代:生成第 2 棵树 h2​(x)

步骤 1:计算第 2 轮残差 r2i​

逐个样本计算残差:

样本编号12345
真实房价 yi​1518222530
前一轮预测值 f1​(xi​)21.6321.6321.6322.5522.55
残差 r2i​15−21.63=−6.6318−21.63=−3.6322−21.63=0.3725−22.55=2.4530−22.55=7.45

残差集合:r2​=[−6.63,−3.63,0.37,2.45,7.45]

步骤 2:训练第 2 棵 CART 回归树 h2​(x)

同样以「面积 x」为特征、「残差 r2i​」为新标签,重复平方误差最小化的划分过程,最终得到第 2 棵树的划分规则和预测值 h2​(xi​)(计算过程同第 1 棵树,此处省略阈值筛选步骤)。

假设第 2 棵树的最优划分阈值还是 75,得到预测值:

样本编号12345
h2​(xi​)-3.4-3.4-3.44.954.95

步骤 3:更新模型,得到最终模型 f2​(x)

计算最终预测值:

样本编号12345
f1​(xi​)21.6321.6321.6322.5522.55
0.1⋅h2​(xi​)−0.34−0.34−0.340.500.50
f2​(xi​)21.2921.2921.2923.0523.05

核心结论

  1. 残差的作用:每一轮的残差都是「模型当前预测的误差」,训练新树的目标就是尽可能拟合这个误差
  2. 模型更新逻辑:每一轮都用学习率控制新树的贡献,逐步修正预测值,让模型越来越准。
  3. 迭代终止条件:当树的数量达到预设值 M,或残差的均值小于阈值时,停止迭代。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/13 4:38:30

Node.js 用 process.cpuUsage 监控CPU使用率

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 Node.js CPU监控的深度实践:超越process.cpuUsage的陷阱与创新目录Node.js CPU监控的深度实践:超越proce…

作者头像 李华
网站建设 2026/8/11 3:16:10

【课程设计/毕业设计】基于JavaWeb寝室管理系统Web的学生宿舍管理系统【附源码、数据库、万字文档】

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围:&am…

作者头像 李华
网站建设 2026/8/8 11:23:57

树状数组

lc2659树状数组统计已删除元素&#xff0c;按数值升序遍历元素位置分前后段计算每次删除的移动步数并累加&#xff0c;求解清空数组的总操作数。// 树状数组模板 class BIT {vector<int> tree; public:BIT(int n) : tree(n) {}// 将下标 i 上的数加一void inc(int i) {wh…

作者头像 李华
网站建设 2026/8/13 22:12:25

一道“找数”的题,为什么能成为算法世界的常青树?

一道“找数”的题,为什么能成为算法世界的常青树? 从 Missing Number 说起 一、引子:这题你肯定见过,但你真的“理解”了吗? 很多人第一次见到这道题,心里都会冒出一句话: “这也叫算法题?小学数学吧?” 题目很简单: 给你一个包含 0 ~ n 中 n 个不同数字 的数组, …

作者头像 李华
网站建设 2026/8/9 4:52:43

.nvue页面实现画笔绘制功能,用原生html导入nvue页面使用还可以截图(画笔 清空 橡皮擦 改颜色 禁用画笔 截图-是视频画面加绘制合成一张图片截图)-我花80块钱找淘宝都没弄出来,自己写的

功能 安卓app上面nvue 视频上方绘制&#xff08;vue2&#xff09;①新建一个draw.html文件&#xff08;里面功能有画笔 清空 橡皮擦 改颜色 禁用画笔 截图-是视频画面加绘制合成一张图片截图&#xff09;②webViewUrl: /static/draw.html,③<!-- 画布 绘制层 --><web-…

作者头像 李华