跳到主要内容

集成回归

随机森林回归

在自助样本上长出许多回归树,把各树落到的叶均值再做算术平均,用来压低单次切分的抖动。

更新日期 2026-08-29 机器学习

这篇能回答什么

随机森林回归关心的是:多棵不稳定的回归树平均之后,总价预测还抖不抖。每一棵树仍然在叶上报告均值;森林的输出是这些均值的算术平均,不是多数票。袋外(OOB)样本给出近似测试误差。本页占用表取代表树(教学上取第一棵,并合并到三片粗叶)的叶厚,用来判断单棵分区有没有塌成「一片巨大盆地 + 两片薄边」。

适合:表格型连续预测,特征有非线性与交互,你愿意牺牲单条规则,换更稳的 RMSE。教学口径完整个案 343。代表树三片粗叶:A 43(12.54%)、B 71(20.7%)、C 229(66.76%)。A 比单棵 CART 教学例更瘦,说明自助抽样加特征子集可以切出很薄的叶;平均多棵之后,单片薄叶不再单独决定预测。

什么时候不该用

需要「面积每增 1 平米,总价变多少」以及标准误时,回到线性回归,森林没有 B 和 VIF。Y 是流失/成交标签时用随机森林分类,那里聚合的是类别投票。只要一条可宣讲路径,用决策树回归。只要基尼重要性、还要方向与局部贡献,对照SHAP。

如何选择方法

连续预测里,森林、提升、极端随机树都是「多棵回归树」,差别在随机化与聚合。森林:自助样本 + 特征子集,预测取平均。ExtraTrees:连阈值也随机抽。AdaBoost:按残差改权重再线性组合。GBDT:新树拟合负梯度。OLS:一条可加直线。分类森林不要用来预测总价。

  • 随机森林回归:B 棵回归树平均叶均值;可看 OOB R² 与不纯度重要性。

  • 决策树回归:单棵、可画路径;方差大。

  • GBDT / AdaBoost 回归:串行修残差,训练误差常更低,也更容易把噪声抬上去。

  • 线性回归:要推断与单位斜率,不要用森林冒充系数表。

输入、输出与限制

输入

一个定量因变量,若干特征。默认在每棵树的节点上只考察约 √p 个特征(回归有时用 p/3;以工作台说明为准)。缺失按分析列成表删除。

  • 因变量:1 个定量列,本例为总价(万元)。

  • 特征:2–40 个;本例面积(平米)、楼层、总楼层、建筑年份。不要放房源 ID。

输出

占用表给出代表树合并后的三片粗叶人数与占比(A 43、B 71、C 229,N=343)。工作台另给训练/OOB(或测试)RMSE、MAE、R²,以及不纯度下降的特征重要性。预测列是各树叶均值的平均。

产品限制

  • 有效行少于 30 拒绝;OOB 在 n 较小时代价高,教学上 n≥50 才强调 OOB。

  • 默认 100 棵、节点特征子集随机;把棵数从 100 加到 500,方差通常继续降,偏差几乎不变。

  • 重要性是分裂不纯度,没有「推高多少万元」的单位;要局部贡献用 SHAP。

  • 代表树占用只是窗口,不是 100 棵树每棵都长这样。

案例

研究问题。 同一张房源评价表,业务要的是总价预测稳不稳、面积和楼龄谁更常被抽到分裂,而不是复述某一棵树的 if-then。中介可以接受黑盒,但不能接受只在 43 套房源上成立的「规律」。

完整个案 343(与单棵树教学例的 290 不同,因为进入列或缺失模式可以不一致)。代表树粗叶占用 A 43(12.54%)、B 71(20.7%)、C 229(66.76%)。C 占三分之二,单看这一棵仍像「大盆地」;森林的意义是:下一棵自助树会换切分,平均之后薄叶 A 的噪声被冲淡。下载综合评价表:Y=总价(万元),特征用面积、楼层、总楼层、建筑年份。

下载教学示例表(综合评价)

在 StatsX 中操作

  1. 步骤 1 · 读入房源评价表

    导入后先看工作表是否仍叫 Sheet1。总价与单价不要双双当作因变量。

  2. 步骤 2 · 丢掉标识列

    画像里勾掉房源 ID、小区名称。城市、区域基数高,本练习不进森林,以免重要性被高基数切分抬走。

  3. 步骤 3 · 选随机森林回归

    目录里的随机森林分类用于定类标签。总价是连续的,必须点回归,否则输出会变成票数而不是万元均值。

  4. 步骤 4 · 放好 Y 与特征

    因变量:总价(万元)。特征:面积(平米)、楼层、总楼层、建筑年份。棵数保持默认 100,先看 OOB 再决定是否加树。

  5. 步骤 5 · 对照占用与 OOB

    代表树若仍显示叶 A 只有 43 条,不要惊慌——看的是森林平均误差。训练 R² 很高而 OOB 掉一截,才是过拟合信号。

工作台读入房源评价表
读入综合评价表,确认活动工作表。
画像中排除房源 ID
特征只用面积、楼层、总楼层、建筑年份,排除标识列。
目录中选定随机森林回归
选定「随机森林回归」,不要点随机森林分类。
为随机森林回归指定总价与特征
因变量为总价,特征为四列住房属性后运行。

如何阅读输出

占用表描述代表树合并后的三片粗叶,不是客户分群。N=343。叶 A 43(12.54%)已经偏瘦,叶 C 229(66.76%)仍是主盆地。这张表用来诊断「单棵树会不会一边倒」,不能代替 100 棵树的平均预测。

随机森林回归结果表
项目类别统计量取值
随机森林回归类别 A频数43
随机森林回归类别 B频数71
随机森林回归类别 C频数229
随机森林回归合计有效样本 N343
随机森林回归类别 A占比(%)12.54
随机森林回归类别 B占比(%)20.7
随机森林回归类别 C占比(%)66.76

左右滑动可查看完整表格

教学示例表在 StatsX 工作台中的计算结果口径。

随机森林回归代表树叶占用表
人数应与代表树三片粗叶 43 / 71 / 229 一致。
随机森林回归预测对照图
对照图看平均预测与观测总价;误差数字以工作台指标为准。

阅读顺序:N=343 → 代表树最瘦叶(A=43)→ OOB 或测试 RMSE / R² → 训练指标是否明显更甜 → 不纯度重要性排序。重要性没有万元单位,不能写成 Beta。预测值是各树叶均值的平均,落在某套房源上时,不同树可能把它分进不同厚度的叶子。

过拟合信号:训练 R² 接近 1,OOB R² 低一截。森林对深度不如单棵树敏感,但把叶最小样本降到 1、又不限制深度,仍能记住噪声。棵数加到 500 很少会「突然过拟合」,更多是收益递减。C 占 66.76% 只说明这一棵代表树偏不平衡,不证明全森林都这么偏。

理论与公式

第 b 棵树在自助样本上按 MSE 生长,并在每个节点只看随机特征子集。新样本的预测是各树叶均值的平均:

袋外误差把未抽进第 b 个自助袋的样本拿来评估 T_b,再平均,近似测试 MSE:

分类森林把 T_b(x) 换成类别投票,损失是 0-1 或基尼,不是平方误差。本页 B 默认 100,n=343。代表树叶厚 43/71/229 只刻画一棵树的分区,OOB 才刻画森林。不纯度重要性累加各次分裂的 ΔMSE,相关特征会分摊或互抢。

注意事项

  • 没有标准误与 VIF,不能把重要性当成回归系数。

  • 代表树叶 A 仅 43 条,说明单棵分区可以很瘦;解释靠森林平均,不靠这一片。

  • 面积几乎总会排在重要性前列,因为总价≈单价×面积。

  • 训练指标甜、OOB 苦,优先信 OOB。

  • 高基数定类会扭曲分裂;本练习不用小区名称。

  • 换随机种子,单棵路径会变,OOB 数量级应稳定。

常见问题

参考文献

  • Breiman, L. Random forests[J]. Machine Learning, 2001, 45: 5–32.

  • Hastie, T., Tibshirani, R., & Friedman, J. The Elements of Statistical Learning. Springer.

  • 周志华. 机器学习[M]. 清华大学出版社.