正则牛顿提升
XGBoost回归
对平方损失做二阶展开,叶上加的是收缩后的牛顿增量,不是朴素残差均值;占用表读残差三带,不读户型。
这篇能回答什么
XGBoost回归要回答的是:在表格型连续结局上,带叶子惩罚的牛顿提升能不能把预测残差压进可接受的带子里。它和经典 GBDT 同属加性树,但目标函数多了两项:对当前预测的二阶泰勒项,以及叶子个数 γT 与叶重 λ‖w‖²。平方损失下海森是常数,叶最优值因此从「该叶残差算术平均」变成「被 λ 收缩过的平均」。本页占用不是浅树三片叶,也不是房屋类型,而是拟合结束后按 |y−F| 切出的残差三带。
教学评价表成表删除后留下 292 条。大残差带 A 52(17.81%),中带 B 76(26.03%),小残差带 C 164(56.16%)。C 刚过一半,说明牛顿步把多数房源推近了;A 仍有五十来套,正是 λ 与 γ 故意不让模型追死的那一侧——加大树深或关掉正则,A 会变瘦,验证 RMSE 却常常变差。特征用面积、楼层、总楼层、建筑年份,Y 用总价(万元)。
什么时候不该用
必须报告「控制楼层后,每平米多少万元」以及标准误时,回到线性回归。只要一阶残差均值、不想引入 λ 与 γ,用GBDT 回归。宽表、行很多、你更在意按叶生长的速度,对照LightGBM回归。Y 是成交/流失标签时改XGBoost分类,那里占用是标签份额,增益对着对数损失。
如何选择方法
连续预测里先分清求解器。GBDT 沿负梯度走,叶值是未收缩的残差均值。XGBoost 用 g、h 拼增益,叶值除以 H+λ。LightGBM 把同一套增益放到直方图桶上,并且每次只切当前最赚的叶子。随机森林平行平均,没有牛顿步。闭式 OLS 给 B 与 VIF,给不出残差带随树数变薄的路径。
XGBoost回归:二阶增益 + 叶子正则 + 按层展开;占用是残差三带。
GBDT 回归:一阶残差树,γ 默认是叶内均值,没有 λ 分母。
LightGBM回归:直方图 + 按叶生长,残差口袋形状通常更歪。
线性回归(OLS):斜率推断;写不出牛顿叶重。
输入、输出与限制
输入
一个定量因变量与若干特征。默认平方损失。缺失按成表删除,因此本页 N 不必等于森林或单棵 CART 教学例。疑似编号列不会进入分裂。
因变量:1 个定量列;本练习总价(万元)。
特征:1–40 个;本练习面积(平米)、楼层、总楼层、建筑年份。
与 GBDT 不同的旋钮:λ(叶重 L2)、γ(新叶惩罚)、按层的 max_depth,而不是「只调学习率」。
输出
「XGBoost回归结果表」印残差三带:A 52、B 76、C 164,合计 292。另有 RMSE、MAE、R² 与损失随树数的曲线。分裂增益累计成重要性,单位不是万元,也没有标准误。
产品限制
有效行少于 40 拒绝。
默认约 100 棵、学习率 0.1、深度 6、λ 1;训练损失继续降不等于该加树。
大残差带若长期停在 52 附近,先抽这 52 行看是不是录入错误,再决定是否减 λ。
曲线可截断展示,三带人数以表为准。
案例
研究问题。 评价表上的总价有门槛和交互,一条直线写不满。研究者想用可早停的正则提升去预测万元房价,但先问:牛顿步结束之后,还有多少套房的 |残差| 落在上带?若上带几乎全是多打了一个零的录入,加树只是在记脏数据。
本方法完整个案 292,与 GBDT 教学例的 201、森林的 343 不是同一删除集合。残差带 52 / 76 / 164。下载综合评价表:Y=总价(万元),特征=面积、楼层、总楼层、建筑年份。单价不要同时进特征。预留验证行做早停时,不要把验证 RMSE 写成「全市定价规律」。
在 StatsX 中操作
步骤 1 · 读入评价表并丢掉泄漏列
工作台打开综合评价 xlsx。总价与单价只留总价当 Y。挂牌日期本练习不当数值特征。
步骤 2 · 确认四列住房尺度
画像里面积为定量,楼层与总楼层可切分,建筑年份不要被读成字符串编号。
步骤 3 · 点 XGBoost回归而不是分类
目录搜「XGBoost回归」。分类卡片对着标签与 ROC;本页必须走回归,否则叶重从万元牛顿增量变成对数几率。
步骤 4 · 先保留默认 λ 与按层深度
因变量:总价(万元)。特征同上。λ 先留 1、深度先留 6;有验证划分时打开早停。不要一上来把 λ 打成 0 去「追平训练 RMSE」。
步骤 5 · 对着残差带抽行
表上 A 带应接近 52。点开这 52 套:是边远小盘、学区豪宅,还是小数点错位。C 带变厚只说明多数点被牛顿步推近,不代替验证 RMSE。




如何阅读输出
把类别 A / B / C 读成 |残差| 三带。N=292。上带 A 52(17.81%),中带 B 76(26.03%),下带 C 164(56.16%)。C 占 56.16% 不是准确率,也不是「一片巨叶装下大半房源」——GBDT 教学浅树才用叶占用。这里 C 厚只表示牛顿步之后多数点已经靠近当前 F。
| 项目 | 类别 | 统计量 | 取值 |
|---|---|---|---|
| XGBoost回归 | 类别 A | 频数 | 52 |
| XGBoost回归 | 类别 B | 频数 | 76 |
| XGBoost回归 | 类别 C | 频数 | 164 |
| XGBoost回归 | 合计 | 有效样本 N | 292 |
| XGBoost回归 | 类别 A | 占比(%) | 17.81 |
| XGBoost回归 | 类别 B | 占比(%) | 26.03 |
| XGBoost回归 | 类别 C | 占比(%) | 56.16 |
左右滑动可查看完整表格
教学示例表在 StatsX 工作台中的计算结果口径。


阅读顺序:先承认 292 不是全表行数 → 抽 A 带 52 行 → 看验证 RMSE 是否仍随树数下降 → 再看重要性排序(只供筛变量)。不要写「面积的 Beta=…」。增益最大的分裂几乎总会碰到面积,这只说明平方损失在面积上最好切,不是单位效应。
过拟合在本页的样子:λ 仍是 1,树从 100 加到 800,训练 RMSE 继续降,A 带被削到个位数,验证 RMSE 抬头。早停应停在验证最低处。反过来,把 λ 加得很大,三带会黏在一起、几乎不再变,那是正则把牛顿步掐死,不是数据「本来就线性」。
理论与公式
第 t 轮在已有预测 F^{(t−1)} 上加一棵树 f_t。把损失在 F^{(t−1)} 处做二阶展开,并惩罚叶子:
平方损失取 ½(y−F)² 时,g_i=F−y,h_i=1。落入叶 j 的最优叶重因此是收缩平均,而不是 GBDT 页的裸均值:
λ=0 且 h_i=1 时,w★ 退回该叶残差均值,代数上靠近 Friedman GBDT。λ>0 时每一步都短一截,这就是「同样 100 棵,XGBoost 的训练 RMSE 往往略高于未正则 GBDT,验证却更稳」的来源。按层生长只决定分裂顺序:同一深度的节点一起评估增益,再进入下一层。教学三带把最终 |y−F| 切成 52/76/164,用来检查收缩有没有把上带留在一个可抽查的规模。
注意事项
A 带 52 条是抽查对象,不是「模型失败的证据」。
重要性没有万元单位,不能替代 OLS 的 B。
关掉 λ、加深到 10,牛顿步会把上带挖空,验证往往变差。
本页三带不是户型、不是城市、也不是 GBDT 那张浅叶人数。
单价若与总价同时进入,等于把目标定义喂给增益。
完整个案 292 必须写进方法节,不要沿用上传行数。
常见问题
参考文献
Chen, T., & Guestrin, C. XGBoost: A scalable tree boosting system[C]//KDD. 2016.
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.