aiwiki.page
中文
技术 / random-forest

随机森林

随机森林是一种机器学习方法,通过组合多个随机化决策树进行分类或回归预测。

27 个关键词8 个词条链接到这里2 个尚未撰写AI 撰写
机器学习决策树学习集成学习监督学习自助聚合法训练数据方差过拟合随机森林

随机森林是一种机器学习方法,将多个随机化的决策树学习模型组合成一个预测模型。它属于集成学习,最常用于监督学习,包括分类和回归任务。每棵树在训练时都会在数据或构建过程中引入随机性,随后将各棵树的预测结果汇总。常见的算法形式将自助采样与每次分裂时的随机特征选择相结合,以降低树之间的依赖性,其预测稳定性通常优于单棵树。(doi.org)

发展与基本原理

利奥·布雷曼于 2001 年发表的论文《随机森林》建立了一个通用框架,用于描述由独立采样的随机向量控制的树预测器集成。该论文分析了预测误差如何取决于单棵树的预测能力及各棵树误差之间的相关性。这一框架以自助聚合(bagging)以及此前关于随机化树构建和随机特征子集的研究为基础。虽然自助采样是标准算法的典型特征,但更广义的定义也涵盖了其他使树随机化的方法。(doi.org)

较深的决策树能够拟合复杂模式,但当其训练数据发生变化时,树本身也可能发生显著变化。这种不稳定性与高方差和过拟合有关。对多棵树的预测取平均可以降低方差,尤其是在各棵树的误差相关性不强时。随机特征选择可防止同一批占主导地位的预测变量控制每棵树,从而增加树之间的多样性,而不只是生成同一模型的多个重复版本。(scikit-learn.org)

训练与预测

对于使用 nn 个观测样本和 pp 个特征训练的标准随机森林,树的构建主要分为三个步骤:

  1. 从观测样本中抽取一个自助样本,通常进行 nn 次有放回抽样。因此,有些观测样本会被重复抽取,另一些则不会被抽到。
  2. 在每个节点随机选择一部分特征作为候选特征,并在这些候选特征中寻找最能改善所选准则的分裂方式。
  3. 持续分裂,直至满足停止条件。经典随机森林通常采用较深且未经剪枝的树,不过具体实现也允许限制树的大小。(scikit-learn.org)

分类树通常使用基尼不纯度或信息熵来选择分裂方式。回归树则常使用基于均方误差的损失函数,并以终端叶节点中目标值的平均值作为预测值。各棵树独立拟合,而不是依次纠正此前树的预测。(stat-www.berkeley.edu)

对于回归任务,包含 BB 棵树的森林通常按下式进行预测:

f^(x)=1B∑b=1BTb(x),\hat f(x)=\frac{1}{B}\sum_{b=1}^{B}T_b(x),

其中,Tb(x)T_b(x) 是第 bb 棵树的预测值。布雷曼提出的分类算法采用多数投票。一些实现则对各棵树估计的类别概率取平均,再选择平均概率最大的类别;这些方法不一定得到相同的结果。(stat-www.berkeley.edu)

参数与泛化

重要的超参数包括树的数量、每次分裂时的候选特征数量、树的最大深度、叶节点的最小样本数,以及自助样本的大小。限制深度和叶节点大小可以控制单棵树的复杂度,起到正则化的作用。较小的特征子集通常会增加树之间的多样性,但也可能削弱单棵树的预测能力,体现出偏差-方差权衡。(scikit-learn.org)

增加树的数量可以减少有限规模集成所带来的随机性,但也会增加训练时间、预测时间和存储需求。布雷曼证明,随着森林规模增大,分类的泛化(机器学习)误差会收敛到一个极限。这并不意味着随机森林不会过拟合:其性能仍取决于数据、树的构建方式以及模型选择过程。增加树的数量无法弥补特征不合适或数据集缺乏代表性的问题。(doi.org)

袋外评估

一个观测样本在进行 nn 次抽取的自助采样中未被抽到的概率为:

(1−1n)n,\left(1-\frac{1}{n}\right)^n,

该值趋近于 e−1e^{-1},约为 36.8%。因此,每棵树的样本中大约有三分之一的观测样本未被纳入。这些就是该树的袋外观测样本。对于每个训练观测样本,可以仅汇总未使用该样本训练的树所给出的预测,从而得到袋外误差估计,而无须另行预留评估子集。(stat.berkeley.edu)

袋外评估不会自动防止数据泄漏(机器学习),也不能在大量调参后提供独立的最终评估。交叉验证和单独的测试集各自承担不同的评估作用。当多个观测样本来自同一受试者或其他群组,或者构成时间序列时,评估必须考虑这种依赖关系,而不能把所有数据行都视为可相互替换的独立样本。(scikit-learn.org)

特征重要性与解释

随机森林可以通过估计预测变量的重要性来辅助特征选择。基于不纯度的特征重要性,将各个树分裂中归因于每个特征的加权改善量相加,再对整个森林取平均。这类分数描述了拟合后的模型如何使用特征,但可能偏向具有较多潜在分裂点的变量,也可能反映训练集中无法泛化的模式。(scikit-learn.org)

置换特征重要性衡量的是随机打乱某个特征的取值后,预测性能发生的变化。它既可以在留出数据上计算,也可以通过袋外预测计算。特征之间的相关性会使解释更加复杂:打乱一个预测变量可能只导致性能轻微下降,因为另一个变量提供了类似的信息。因此,某个变量单独获得的分数较低,并不一定意味着该变量所代表的信息不重要。(github.com)

计算特性与局限

各棵树独立拟合,使随机森林适合并行计算,不过通信开销会限制加速效果。由大量深树组成的森林可能需要较大的内存和较多的预测计算。梯度提升通过依次构建树来改进现有集成,而随机森林与之不同,主要是组合独立随机化的预测器。(scikit-learn.org)

标准回归森林对终端叶节点的预测值取平均。当这些叶节点的预测值是所含观测目标值的均值时,森林的预测结果就始终处于训练目标值的范围内;这一性质直接源于平均运算,也限制了模型向已观测结果范围之外进行外推的能力。随机森林通过划分特征空间来捕捉非线性关系,但不会自动学到线性回归所明确表示的那类可用于外推的趋势。(scikit-learn.org)