梯度提升
梯度提升树(GBDT)回归
平方损失下每棵新树拟合当前残差(负梯度),叶上加的是残差均值,学习率控制步长。
这篇能回答什么
梯度提升回归把预测写成可加模型:从全体总价的常数均值出发,每一棵新的浅树去拟合当前平方损失的负梯度,也就是残差本身。叶子上加进模型的是该叶残差均值,再乘学习率 ν。本页占用表取一棵典型浅树(深度被卡住后合并为三片叶)的人数,用来检查有没有一片叶子吞掉大半样本——浅树本应接近均分。
适合:结构化表上的连续预测,你接受黑盒,但希望用学习率和早停踩刹车。教学完整个案 201(进入列或缺失模式与森林教学例不必相同)。三片浅叶 61 / 66 / 74(30.35% / 32.84% / 36.82%),几乎各占三分之一。这和单棵深 CART「一片巨叶 + 两片薄边」不同:GBDT 靠很多小步,不靠一棵深树。
什么时候不该用
Y 是盗刷/流失标签时改用GBDT 分类,那里常用对数损失,叶上加的是概率校准后的增量,不是残差均值。必须报告单位斜率与标准误时,回线性回归。只要平行平均、不想像残差那样串行前进,用随机森林回归。类别特征很多、想少做编码时对照CatBoost 回归。
如何选择方法
连续结局里:GBDT 沿梯度走,AdaBoost 改权重,森林做袋装平均,OLS 写一条直线。要早停与学习率 → GBDT。要追打大残差、轮数少 → AdaBoost.R2。要稳、少调参 → 森林。要 B → OLS。分类 GBDT 的 log-loss 不能解释本页的万元残差。
GBDT 回归:F_m=F_{m-1}+ν h_m,h_m 拟合残差;浅叶占用应大致均匀。
AdaBoost 回归:加权难点,不显式走负梯度。
随机森林回归:自助平均叶均值,没有学习率这条旋钮。
线性回归:推断与单位效应;写不出逐步残差路径。
输入、输出与限制
输入
一个定量 Y 与若干特征。默认平方损失;工作台若提供 Huber,只在总价极端值很多时再改。缺失成表删除。
因变量:1 个定量列,本例总价(万元)。
特征:1–40 个;本练习面积(平米)、楼层、总楼层、建筑年份。
输出
占用表是典型浅树的三片叶:A 61、B 66、C 74,合计 201。另有 RMSE、MAE、R²,以及随树数变化的损失曲线。特征重要性来自分裂对损失的累计改进,单位不是万元,也不是 Beta。
产品限制
有效行少于 40 拒绝。
默认 100 棵、学习率 0.1、深度 3;训练损失还在降不等于该继续加树,应看验证集或早停。
平方损失对天价房源敏感;未改 Huber 时,先检查 Y 的极端百分位。
曲线可截断展示,叶占用与最终误差以表为准。
案例
研究问题。 要用可早停的提升树预测总价,并先确认浅树有没有塌成「一片叶子装下大半房源」。若三片叶接近均分,说明深度限制在起作用,后续比的是验证 RMSE,而不是谁的训练曲线更低。
完整个案 201。浅叶占用 A 61(30.35%)、B 66(32.84%)、C 74(36.82%),极差只有 13 条。下载综合评价表:Y=总价(万元),特征=面积、楼层、总楼层、建筑年份。预留一部分行做早停时,不要把验证误差写成「全市房价规律」。
在 StatsX 中操作
步骤 1 · 载入评价表并锁定 Sheet1
工作台读入综合评价 xlsx。总价与单价只留一个当 Y,另一个不要同时进特征,以免泄漏。
步骤 2 · 限制特征集
只用面积、楼层、总楼层、建筑年份。挂牌日期是时间戳,本练习不当成数值特征乱切。
步骤 3 · 打开梯度提升树回归
同名分类项用于标签与对数损失。总价必须走回归,否则叶增量的含义会从「残差万元」变成「对数几率」。
步骤 4 · 保持浅树与小学习率
因变量:总价(万元)。特征同上。先用深度 3、学习率 0.1、100 棵;有验证划分时打开早停。
步骤 5 · 先看叶是否均分
三片叶应接近 61/66/74。若某一片突然瘦到个位数,说明深度或叶最小样本被改大/改小了,先改回去再谈 RMSE。




如何阅读输出
占用表是典型浅树的三片叶,不是客户层级。N=201。A 61(30.35%)、B 66(32.84%)、C 74(36.82%)。和森林代表树「229 对 43」那种一边倒不同,这里没有巨叶。叶上此刻加的是残差均值,不是总价均值本身——总价预测是历次增量累加后再加上初始均值。
| 项目 | 类别 | 统计量 | 取值 |
|---|---|---|---|
| 梯度提升树(GBDT)回归 | 类别 A | 频数 | 61 |
| 梯度提升树(GBDT)回归 | 类别 B | 频数 | 66 |
| 梯度提升树(GBDT)回归 | 类别 C | 频数 | 74 |
| 梯度提升树(GBDT)回归 | 合计 | 有效样本 N | 201 |
| 梯度提升树(GBDT)回归 | 类别 A | 占比(%) | 30.35 |
| 梯度提升树(GBDT)回归 | 类别 B | 占比(%) | 32.84 |
| 梯度提升树(GBDT)回归 | 类别 C | 占比(%) | 36.82 |
左右滑动可查看完整表格
教学示例表在 StatsX 工作台中的计算结果口径。


阅读顺序:N=201 → 三叶是否接近均分 → 验证/测试 RMSE 是否仍随树数下降 → 训练曲线是否已经弯成过拟合 → 重要性排序(仅供筛变量)。不要把重要性写成「面积的 Beta=…」。
过拟合的典型样子:学习率 0.1 不变,树从 100 加到 800,训练 RMSE 一直降,验证 RMSE 先降后升。早停应停在验证最低处,而不是训练最低处。三片叶均分只说明这一棵弱学习器没有塌,不保证 100 棵加完仍然泛化。
理论与公式
平方损失 L=(y−F)^2/2 的负梯度就是残差。第 m 棵树 h_m 在特征空间里拟合 r_i=y_i−F_{m-1}(x_i),叶 j 的最优增量是该叶残差均值:
学习率 ν∈(0,1] 把这次增量缩小后再加进模型,避免一步走完:
F_0 常取 ȳ。分类 GBDT 把损失换成对数损失,负梯度变成 y−p,叶增量要按 Newton 步修正,不能用本页的 γ=残差均值。教学浅树 n=201,三叶 61/66/74。Huber 损失只在 |r| 超过阈值后改用线性,用来减弱天价点对 γ 的拉力。
注意事项
训练损失单调下降不是停手准则,验证损失才是。
重要性没有万元单位,不能替代线性回归的 B。
平方损失会追天价房源;先看 Y 的极端百分位。
深度加到 8、学习率仍 0.3,弱学习器本身已经太强,提升变成叠过拟合。
浅叶接近 61/66/74 是深度限制的结果,改深以后占用会重新失衡。
单价若同时进入特征,等于把目标的定义零件喂给模型。
常见问题
参考文献
Friedman, J. H. Greedy function approximation: A gradient boosting machine[J]. Annals of Statistics, 2001, 29(5): 1189–1232.
Hastie, T., Tibshirani, R., & Friedman, J. The Elements of Statistical Learning. Springer.
Chen, T., & Guestrin, C. XGBoost: A scalable tree boosting system[C]//KDD. 2016.