随机森林是一种集成学习方法,用于分类、回归和其他任务。它在训练过程中构建大量决策树,并组合它们的输出:对于分类任务,返回多数树选择的类别;对于回归任务,则对各个树的预测取平均值。该方法纠正了深层决策树过度拟合训练集的倾向,在保持低偏差的同时降低方差。
第一个随机森林算法由Tin Kam Ho于1995年基于随机子空间方法开发,该方法实现了Eugene Kleinberg提出的随机判别方法。Leo Breiman和Adele Cutler后来通过将袋装法与随机特征选择相结合扩展了这一方法,并于2006年将“Random Forests”注册为商标;截至2019年,该商标由Minitab, Inc.持有。
背景:决策树及其局限性
决策树是机器学习中广泛使用的方法。它们通过一系列二元分割来划分特征空间,使其具有可扩展性且易于解释。然而,深层树倾向于学习高度不规则的模式,导致低偏差但非常高的方差。在实践中,如果训练数据中的几个点被改变,针对特定数据集训练的树可能会发生剧烈变化,其预测通常仅对训练数据准确。正如Trevor Hastie及其同事所指出的,它们对未见过的数据很少准确。随机森林通过平均许多在不同数据子集上训练的深层树来解决这一问题,从而显著降低方差。
树方法的难点在于,在同一数据上生长过多树会产生相关的预测。为了使树去相关,随机森林使用自助采样和随机特征选择,使各个树既多样化又强大。
历史与发展
随机决策森林的一般思想出现在1993年Salzberg和Heath的工作中,他们提出使用随机化决策树算法生成多棵树,并通过多数投票组合它们。1995年,Tin Kam Ho扩展了这一思想,表明在斜超平面上分割的树森林可以在生长过程中提高准确性而不会遭受过拟合,前提是森林被随机限制在特征维度的子集上。Ho的方法称为随机子空间方法,通过将训练数据投影到随机选择的特征子空间中来构建树。这一方法是随机森林发展的关键步骤。
随后,Amit和Geman独立引入了在每个分割处搜索随机决策子集的思想,尽管他们将其应用于单棵树。独立地,Thomas Dietterich引入了随机化节点优化的思想,其中每个节点选择的属性由随机过程而非确定性最优准则确定。这些思想与Leo Breiman早期关于袋装法的工作相结合,促成了现代随机森林的表述。Breiman具有影响力的2001年论文是机器学习中被引用最多的论文之一,它结合了这些目标,并基于森林中树的强度和相关性提供了泛化误差的理论界限。
Breiman的论文还建立了实用工具:用于估计泛化误差而无需单独验证集的袋外误差,以及基于排列的变量重要性度量,该度量衡量当特征值被随机打乱时性能下降的程度。这些至今仍是随机森林的核心方面。
袋装法与集成学习
随机森林训练中的基础技术是自助聚合,即袋装法。给定具有特征X和响应Y的训练集,算法从训练数据中有放回地采样B次,每次创建一个相同大小的新数据集。对每个自助样本拟合一棵决策树,通常生长得较深且不剪枝。训练后,对新点的预测通过回归平均或分类多数投票进行。这种元算法在增加偏差的情况下降低整体方差,因为许多不相关树的平均值比任何单棵树更稳定。
自助采样通过向树展示不同的训练集来使树去相关。如果所有树都在相同的原始数据上训练,它们将高度相似并容易产生相同的错误。使用自助采样,每棵树捕获随机变化。随着B的增加,模型获得方差减少,但在几百棵树之后,边际改进逐渐减小。在实践中,B通常设置为500或1000棵树,尽管现代实现会在袋外误差稳定时自动停止。
随机森林的一个关键方面是,每棵树通常由于有放回采样而在不同的数据集上训练:大约三分之二的观测值在每个自助样本中至少出现一次,而其余三分之一是袋外的。袋外预测可用于估计泛化误差,无需专门的验证集,而是基于每棵未包含该观测值的树的聚合预测。
随机特征选择
随机森林的关键创新是在每个节点分割处随机选择特征。传统决策树通过在每个节点选择所有特征中最佳减少不纯度的分割来优化,例如分类中的基尼不纯度或回归中的平方误差。然而,在随机森林中,每个分割仅考虑随机选择的特征子集,通常大小约为总特征数的平方根。这迫使树以不同方式结构化,并减少它们之间的相关性。有时会选择替代分割,因为某些全局特征可能主导所有其他特征,导致许多树几乎相同。通过随机限制候选特征,森林可以探索否则可能被忽略的排列,从而实现更稳健的预测。
这种随机子空间方法由Ho引入,后来与Amit和Geman的节点随机化相结合。Breiman的最终表述在每个节点使用随机子集选择,但某些变体仅在拟合每棵树之前使用随机选择。现代实现有所不同;许多库支持“随机子空间”或“随机分割”策略。通常使用特征维度d,分类时子集大小为sqrt(d),回归时为d/3。
模型行为与抗过拟合性
随机森林以其抗过拟合性而闻名。每棵树都很深,可能过拟合,但集成降低了方差。只要特征随机化限制它们,随着更多树的添加,森林往往表现更好。这得到了Breiman论文中理论结果的支持,该结果显示了泛化误差的界限,随着树强度和较低相关性的提高而缩小。然而,如果树的数量过多,模型不会过拟合;随着B的增加,误差趋于稳定,但仍可能对标签中的噪声敏感。如果特征未随机选择,树可能相关并抵消优势。通过随机特征选择,即使分类器复杂度增加,森林也倾向于保持准确性。这与增加单棵树深度导致过拟合形成对比。
对于分类,森林的输出是获得最多投票的类别。对于回归,预测是各个树的平均值,树预测的标准差是不确定性的自然估计。
实际应用与扩展
随机森林应用于许多领域,包括遥感、生物信息学、金融和计算机视觉。它们对无关特征具有鲁棒性,可以处理非线性,并提供可理解性,但比单棵树更难解释。变量重要性度量使研究人员能够识别相关特征。随机森林也用于人工智能,是传统操作中的基础算法,作为许多现代机器学习任务的基线,与深度学习和神经网络并列。
扩展包括极端随机树(更随机的分割阈值),以及将随机森林用于异常检测、排序和缺失值插补。它们也用作机器学习流程中袋装法和集成学习的构建块。
与其他模型的比较
随机森林与基于深度学习的模型(如神经网络)不同,它们可解释、需要较少数据且更简单。它们可以在CPU上训练,而深度神经网络通常需要加速器。但它们可能在高维数据上遇到困难,但可以在偏差和误差之间取得平衡。它们对图像和文本等非结构化数据的有效性较低,而深度学习在这些领域表现出色。权衡是显著的:随机森林仍然是稳健的基准,但缺乏层次表示学习。
在现代人工智能研究的前沿,像大型语言模型和变换器这样的方法主导了语言任务,但随机森林和其他树集成在表格数据和可解释AI等领域仍然常见。
另见
参考文献
原始来源在文章内引用,但无相关外部URL。