随机森林
在 Bagging 基础上让每个节点只看随机特征子集,降低树间相关性。
学习前需要掌握
背景与问题
Bagging 已让各棵树看到不同记录,但如果一个强特征总能压倒其他特征,许多树仍会在高层使用同样划分,错误依旧相关。随机森林在节点候选特征上再增加随机性,试图减少树之间同步犯错。
概念定义
随机森林在 bootstrap 数据上训练多棵树,并在各分裂节点从随机特征子集中寻找划分。回归平均树的预测;scikit-learn 分类器通常平均各树的类别概率再取最大类,因此不必等同于硬标签多数票。
直观理解
让评审不仅看到不同样本,还被要求从不同角度分析。每个评审可能稍弱,但如果错误相关性明显下降,集体判断反而更稳定;随机性过强也会丢掉有用信息。
核心原理
max_features 控制单节点可选特征数,减少它通常加强去相关,也可能增大单树偏差。它不是每棵树训练前固定删掉一批列;候选集合可在不同节点重新采样。
n_estimators 增加主要减少有限棵树的蒙特卡洛波动,无法无限消除共同误差。树深、叶子最小样本数和特征子集需要联合调节;更多树并不替代对数据泄漏和标签噪声的诊断。
OOB 每条记录汇总未见它的树;小森林时某些记录可用树很少,估计不稳定。时间序列与分组任务应使用相应拆分,不能因为内置 OOB 方便就忽略相关样本之间的信息流动。
数学表达
相关估计平均的简化方差
假设各树预测误差方差同为 σ²、两两相关系数同为 ρ;真实树并不严格满足这些简化条件。
变量含义
变量定义与本页概念定义一致,代码中的同名变量保持相同语义。
计算步骤
- 1固定训练与评测边界,再做训练内抽样。
- 2每棵树建立自己的 bootstrap 记录。
- 3每个节点抽候选特征,按划分准则选分裂。
- 4按叶子约束长树,收集概率或回归输出。
代码对应位置
示例 1相同树数下检查相关性下限:在等方差、等相关的简化条件下比较平均方差。
手算与场景核对
假设各树误差方差为 1,树数 B=100。若相关系数为 0.8,平均误差方差为 ;若通过特征随机化降到 0.2,则变为 。
这是条件公式的比较,强调去相关的潜在价值,不是实测随机森林指标。降低相关也可能让单树方差或偏差变化,不能只改 ρ 就断言实际结果。
计算与实现步骤
- 固定训练与评测边界,再做训练内抽样。
- 每棵树建立自己的 bootstrap 记录。
- 每个节点抽候选特征,按划分准则选分裂。
- 按叶子约束长树,收集概率或回归输出。
- 汇总预测,检查验证表现、OOB 可用性和资源成本。
代码实现
示例 1
相同树数下检查相关性下限
example_01.py用途:在等方差、等相关的简化条件下比较平均方差。
tree_count, variance = 100, 1.0
for correlation in [0.8, 0.2]:
ensemble_variance = variance * (correlation + (1-correlation)/tree_count)
print(f"rho={correlation:.1f}, ensemble_variance={ensemble_variance:.3f}")代码解析
解析始终位于完整代码下方,并按实际代码段逐项对应。
输入数据与任务
在等方差、等相关的简化条件下比较平均方差。
Step 1 · 1–4 行
输出中间参数、形状或最终指标,用于核对代码是否符合预期。
tree_count, variance = 100, 1.0
for correlation in [0.8, 0.2]:
ensemble_variance = variance * (correlation + (1-correlation)/tree_count)
print(f"rho={correlation:.1f}, ensemble_variance={ensemble_variance:.3f}")预期输出或运行结果
rho=0.8, ensemble_variance=0.802 rho=0.2, ensemble_variance=0.208
常见错误 · 3 条
- 把 max_features 误解成每棵树永久只用固定列。
- 认为更多树必然消除噪声和系统偏差。
- 分类时忽略概率平均与硬投票可能有差异。
实际应用
- 作为表格分类回归的非线性基线,捕捉部分交互。
- 在不过度依赖外推的场景,利用树集合改善单树稳定性。
常见错误
- 把 max_features 误解成每棵树永久只用固定列。
- 认为更多树必然消除噪声和系统偏差。
- 分类时忽略概率平均与硬投票可能有差异。
资料与假设
参见 scikit-learn:Forests of randomized trees。 本页数值均为构造例;涉及模型分数时仅说明给定数据与协议下的计算。
推荐学习资料
参考库不会生成虚假资源或无效外部链接。