← 返回题目列表

随机森林为什么要做特征子采样?

中等 第 17 / 25 题 更新于 2026/09/19
集成学习机器学习面试题模型训练

简化版

随机森林在每个节点只从随机抽取的部分特征中寻找最佳切分,目的是降低树间相关性;候选太多会让强特征支配所有树,太少则单树过弱。分类常用 sqrt(p) 只是起点,应交叉验证。

详细版

  • 特征子采样通常发生在每个节点,而非整棵树固定一次。

  • 它与 bootstrap 样本采样共同制造多样性。

  • max_features=p 接近 bagged trees,相关性更高。

  • 相关强特征很多时需结合置换重要性解释。

  • 最优比例取决于 p、稀疏性和有效信号数量。

完整版教学

一、主动让部分树看不到最强特征

若一个特征极强,所有 bootstrap 树都会在根部选择它,树结构和错误高度相似。

随机候选迫使部分节点尝试次优但互补的特征。

相关性降低能提升平均效果,但候选过少会提高单树偏差;这是集成强度与多样性的直接权衡。

二、底层机制与公式

at each node: sample m features from p
search best split only among m
common starting point for classification: m≈sqrt(p)

三、带数字的推演

p=100 时,sqrt(p)=10

每个节点只比较 10 个随机特征;一个指定强特征入选概率约 10%,因此不会支配所有树的同一节点。

四、方案对比

方案/对象核心特点代价或边界
m=p单树强树间相关高
m≈sqrt(p)常见分类起点需任务验证
很小 m多样性高单树偏差大

五、执行流程

固定树数与叶约束 -> 扫描 max_features -> 记录 OOB/验证指标
-> 计算树间相关与单树强度 -> 结合延迟选取 -> 多 seed 复核

六、边界条件与工程代价

高维稀疏数据中有效特征极少,m 太小会让许多节点抽不到任何信号;可提高比例或先做特征筛选。

特征子采样会影响 impurity importance 的竞争机会,比较重要性前应固定超参数并用置换法复核。

记忆钩子:max_features 是给每个节点的候选名额:名额大,单树强但趋同;名额小,差异大但可能看不到信号。

七、常见误区与追问

  • 误区:每棵树只使用一组固定子特征。 经典随机森林通常每个节点重新抽候选。

  • 追问:为什么能降低相关性? 不同节点被迫从不同候选中切分。

  • 误区:sqrt(p) 是最优公式。 它只是常用默认,需要验证。

  • 追问:m 太小有什么问题? 节点可能抽不到有效信号,单树明显变弱。

  • 追问:如何选择? 联合看 OOB、单树强度、树间相关和成本。

八、加强记忆

max_features 是给每个节点的候选名额:名额大,单树强但趋同;名额小,差异大但可能看不到信号。

目标是强度与相关性的平衡。