GBDT 算法中构建第一个弱学习器(CART 回归树)-计算示例

这张图是 GBDT 算法中**构建第一个弱学习器(CART 回归树)**的完整计算过程,我用通俗的例子和数值拆解来一步步解释:


一、先明确初始状态

我们有 10 个样本,每个样本的目标值 是真实标签(比如学生的考试分数),初始时模型的预测值是所有目标值的平均值(因为平方损失下,均值是最优初始预测)。

样本序号 (x) 1 2 3 4 5 6 7 8 9 10
目标值(真实分) 5.56 5.70 5.91 6.40 6.80 7.05 8.90 8.70 9.00 9.05
初始预测值(均值) 7.31 7.31 7.31 7.31 7.31 7.31 7.31 7.31 7.31 7.31
负梯度(残差 = 真实值 - 预测值) -1.75 -1.61 -1.40 -0.91 -0.51 -0.26 1.59 1.39 1.69 1.74
  • 初始预测值 7.31 是所有目标值的平均值:

    \\frac{5.56+5.70+5.91+6.40+6.80+7.05+8.90+8.70+9.00+9.05}{10} = 7.31

  • 负梯度(残差)反映了初始预测的错误:负的残差表示"预测值偏高",正的残差表示"预测值偏低"。

二、构建第一个弱学习器:找最优切分点

我们的目标是训练一个 CART 回归树,让它拟合这些残差(负梯度)。CART 树的核心是找到一个切分点,把样本分成两组,让两组内的残差波动最小(平方损失最小)

1. 切分点的选择

我们遍历所有可能的切分点(图里是 1.5, 2.5, ..., 9.5,对应样本序号的中间值),对每个切分点计算平方损失:

  • 切分点 1.5:把第 1 个样本和第 2-10 个样本分成两组。

    • 左子树(第 1 个样本):残差 -1.75 → 子树均值 -1.75
    • 右子树(第 2-10 个样本):残差 -1.61, -1.40, -0.91, -0.51, -0.26, 1.59, 1.39, 1.69, 1.74 → 子树均值 0.19
    • 平方损失:左子树损失为 0(只有一个样本,无波动),右子树损失为 15.72 → 总损失 15.72
  • 切分点 6.5:把第 1-6 个样本和第 7-10 个样本分成两组。

    • 左子树(第 1-6 个样本):残差 -1.75, -1.61, -1.40, -0.91, -0.51, -0.26 → 子树均值 -1.07
    • 右子树(第 7-10 个样本):残差 1.59, 1.39, 1.69, 1.74 → 子树均值 1.60
    • 平方损失:左子树损失 1.85 + 右子树损失 0.07 → 总损失 1.93(所有切分点中最小)
2. 最优切分点的结论

对比所有切分点的平方损失,6.5 对应的损失最小(1.93),因此我们选择 6.5 作为第一个弱学习器的切分点,构建出一棵简单的二叉树:

  • 左子叶(x ≤ 6.5):输出 -1.07(前 6 个样本的残差均值)
  • 右子叶(x > 6.5):输出 1.60(后 4 个样本的残差均值)

三、这个弱学习器的作用

这个决策树的输出是残差的修正值,它告诉我们:

  • 对于前 6 个样本(残差为负,预测值偏高),需要在初始预测值 7.31减去 1.07 (即 7.31 - 1.07 = 6.24),让预测更接近真实值。
  • 对于后 4 个样本(残差为正,预测值偏低),需要在初始预测值 7.31加上 1.60 (即 7.31 + 1.60 = 8.91),让预测更接近真实值。

叠加这个修正后,新的预测值会比初始预测更准确,这就是 GBDT"迭代修正错误"的核心逻辑。


相关推荐
8Qi81 分钟前
LeetCode 32:最长有效括号 —— 栈 + 标记法 题解
java·数据结构·算法·leetcode·职场和发展··括号匹配
机器学习之心4 分钟前
198种组合算法+优化CNN-LSTM+SHAP分析+新数据预测+多输出!深度学习可解释分析,强烈安利,粉丝必备
深度学习·算法·cnn-lstm·shap分析·198种组合算法
Tairitsu_H4 分钟前
[LC优选算法#3] 滑动窗口 | 将x减到0的最⼩操作数 | ⽔果成篮 | 字⺟异位词
c++·算法·leetcode·滑动窗口
YM52e5 分钟前
鸿蒙HarmonyOS ArkTS 实战:教师座椅出入记录 APP 从零到一
学习·华为·harmonyos·鸿蒙系统
bIo7lyA8v11 分钟前
算法复杂度与能耗关系的多变量分析研究的技术8
算法
踏着七彩祥云的小丑12 分钟前
嵌入式测试第 32 天:升级测试:固件OTA升级、断点续传、回滚测试
单片机·嵌入式硬件·学习
小陈phd18 分钟前
Text2SQL智能体学习笔记(二)——NL2SQL落地的隐形基石:元数据库
数据库·笔记·学习
洛水水40 分钟前
【力扣100题】76.搜索插入位置
数据结构·算法·leetcode
Techblog of HaoWANG44 分钟前
智巡守卫:多模态巡检智能体算法服务端设计与实现——基于Ollama+Qwen3.5的自动化巡检报告生成系统
运维·人工智能·算法·目标检测·自动化·边缘计算
踏着七彩祥云的小丑1 小时前
Go学习第4天:条件、循环语句+函数
学习·golang·go