为什么决策树方差高?
简化版
决策树方差高,是因为模型容量大、叶节点样本少,并且贪心切分对数据扰动不连续;训练集稍变就可能产生完全不同的路径。剪枝和叶样本约束降低单树方差,Bagging 与随机森林则通过平均多棵去相关树进一步降方差。
详细版
-
深树能把训练误差压得很低,体现低偏差、高方差。
-
上层阈值改变会级联改变后续数据分配和整棵结构。
-
增大
min_samples_leaf、限制深度或代价复杂度剪枝可平滑局部估计。 -
Bagging 对 bootstrap 样本训练多树,平均减少独立噪声。
-
随机森林再做特征子采样,降低树间相关性,使平均更有效。
完整版教学
一、高容量与离散切分共同制造方差
深树可以把每个训练点隔到很小区域,训练拟合很强,但新样本落在哪个叶对边界位置极其敏感。
数据换一批,边界就可能跳动。
平均能降方差的前提是各树误差不完全同步。
Bagging 改变样本,随机森林还改变候选特征,目的都是获得有能力但不完全相关的树。
二、数学机制怎么落到节点上
Var(mean of M trees) = rho*sigma^2 + (1-rho)*sigma^2/M;where rho is pairwise error correlation。
Var(mean of M trees) = rho*sigma^2 + (1-rho)*sigma^2/M
where rho is pairwise error correlation
M increases reduces only the second term
三、带数字的推演
若单树方差 σ²=1、树间相关性 ρ=0.2、树数 M=100,平均方差约 0.2+0.8/100=0.208。
继续加树只能逼近 0.2,降低相关性同样关键。
四、方法对比
| 方法/对象 | 核心特点 | 代价或限制 |
|---|---|---|
| 剪枝单树 | 直接降低容量 | 可解释,偏差会上升 |
| Bagging | bootstrap 后平均 | 方差下降,树仍较相关 |
| 随机森林 | 再加特征子采样 | 进一步去相关 |
五、从训练到验证的执行链
训练深树观察训练/验证差距 -> 增大叶样本或剪枝
-> bootstrap 训练多棵 -> 特征子采样降相关 -> OOB/验证集检查收敛
六、边界条件与工程代价
增加树数主要降低随机波动,不会修复共同偏差,例如所有树都看到了泄漏特征或训练分布都与线上错位。
随机森林平均后可解释性从单条规则变成总体贡献;若监管需要明确规则,可能要在稳定性与可解释性之间做取舍。
记忆钩子:单树高方差来自“叶小、树深、切分会跳”;剪枝让每棵树稳一些,Bagging 用平均消波动,随机森林再让树彼此少同步。
七、常见误区与追问
-
误区:训练误差低说明单树泛化好。 深树常以高方差记住训练噪声。
-
追问:Bagging 为什么有效? 对不同采样产生的高方差预测求平均,抵消部分波动。
-
误区:树越多方差最终会降到零。 树间相关项
ρσ²不会随 M 消失。 -
追问:随机特征子采样有何作用? 减少强特征让所有树长得相似,从而降低相关性。
-
追问:剪枝和集成如何选择? 需要单树规则选剪枝,追求预测性能通常选集成并联合调参。
八、加强记忆
单树高方差来自“叶小、树深、切分会跳”;剪枝让每棵树稳一些,Bagging 用平均消波动,随机森林再让树彼此少同步。
公式中的 ρ 提醒我们:树数和去相关同样重要。