更新于 2026年8月10日

随机森林#


术语解释#

随机森林(Random Forests) 是机器学习中一种极其经典且高效的集成学习算法,本质上它是基于决策树的 Bagging 集成学习模型。 随机森林通过组合多个性能较弱但各具特色的决策树模型,以“森林”的形式共同完成预测任务。它在预测时采用投票(分类任务)或平均(回归任务)的策略来得出最终结果。

因此,随机森林的建模过程总体上可以分为3步:

  • 随机采样:通过自助法(Bootstrap)从原始数据中随机抽取多组包含若干样本的子训练集。

  • 并行训练:在各个子训练集上分别独立地训练得到不同的决策树模型。

  • 特征随机化(Feature Bagging):这是其核心特性。每棵树在划分节点时,会从已有特征中再随机选择部分特征参与划分。这样做是为了减小各棵树之间的关联性,防止由于个别强特征导致所有树结构过于雷同。

如图所示为随机对样本点和特征采样后训练得到的若干决策树模型组成的随机森林。从图中可以看出,即使同一个样本在不同树中所归属的叶子节点也不尽相同,甚至连类别也可能不同,但是这也充分体现了Bagging集成模型的优点,通过“平均”来提高模型的泛化能力。

随机森林原理示意图
随机森林原理示意图

在图中,多个不同结构的决策树模型构成了随机森林,并且在模型输出时将会以投票的方式决策出最终的输出类别。同时,随机森林与普通Bagging集成学习方法存在的一点差别就是,随机森林中每棵决策树在每次划分节点的过程中,还会有一个随机的过程,即只会从已有的特征中再随机选择部分特征取值参与节点划分,这一过程被称为Feature Bagging。之所以要这么做,是为了减小各个树模型之间的关联性。例如训练数据中如果存在着某些差异性较大的特征取值,则所有的决策树在节点划分时就会选择同样的特征,使最终得到的决策树之间具有较强的关联性,即每棵树都类似。


出现动机#

  • 提高模型精度:当单个模型(如单棵决策树)效果有限时,通过集成多个表现稍弱但各具特色的模型,可以获得比任何单一模型更好的预测结果。

  • 降低模型方差(缓解过拟合):决策树模型容易出现过拟合(高方差)现象。

  • 随机森林通过 Bagging 策略取所有基模型的“平均”值,能够显著降低模型对训练数据中噪声的敏感度。

  • 处理高维冗余特征:通过特征随机化,算法能有效处理包含大量特征(甚至是冗余特征)的数据集,提高模型的鲁棒性


优点缺点#

  • 优点:

    • 极强的泛化能力:由于采用了 Bagging 的聚合策略,随机森林能够有效地降低模型的高方差(过拟合),提高在未知数据上的稳定性。

    • 支持特征重要性评估:随机森林能够通过计算“平均纯度减少量(MDI)”来评估每个特征对模型贡献的重要性。这有助于开发者进行特征筛选,剔除无关的冗余特征。相关内容可以参见「9.2 随机森林原理:集成学习中的树模型方法」

    • 支持并行计算:因为森林中的每一棵决策树都是相互独立的,所以模型可以利用多核 CPU 并行地进行训练和参数搜索,显著提高训练效率。

    • 容错性高:由于最终决策基于多棵树的群体智慧,个别基模型的误判不容易直接导致最终结果错误。

  • 缺点:

    • 资源开销大:在推理阶段,系统必须运行森林中的所有决策树并汇总结果,这导致计算成本极高且耗费资源,在对延迟敏感或计算资源受限的环境下较难部署。

    • 可解释性降低:虽然单棵决策树非常易于通过图示进行直观解释,但随机森林内部逻辑异常复杂,很难向非技术人员解释模型做出特定预测的具体原因。

阅读 --

9.2 随机森林

在本节中,我们首先介绍了随机森林的基本原理,然后介绍了sklearn中随机森林模块RandomForestClassifier的基本用法及其中常见参数的作用,最后详细介绍了如何通过随机森林来对特征进行重要性评估,包括具体的计算及示例代码等。

9.3 泰坦尼克号生还预测

在本节中,我们以泰坦尼克号生还预测数据集为例,首先介绍了如何通过pandas来读取结构化的文本数据,然后详细地展示了从数据预处理到模型预测的每个步骤,包括读取数据集、特征选择、缺失值补充、特征转换和模型选择等,最后以随机森林为例,完成了随机 …

随机森林是如何进行特征重要性评估的?

本文系统讲解决策树与随机森林中的特征重要性评估机制,从基尼不纯度减少量推导单棵树的重要性加权计算公式,并扩展到 sklearn 内置的 feature_importances_ 与 Permutation Importance 置换重要性两 …