主页
topics
random forest
随机森林是一种常用的机器学习算法,整合多个决策树的输出得出单一结果,该算法已由 Leo Breiman 和 Adele Cutler 注册为商标。它灵活易用,既能处理分类问题也能处理回归问题,因此推动了人们对它的采用。
由于随机森林模型由多个决策树组成,因此我们首先要简要介绍决策树算法,这对了解随机森林会很有帮助。决策树从一个基本问题开始,例如“我应该去冲浪吗?”接下来,您可以提出一系列问题来确定答案,例如“浪涌时间长吗?”或“风是吹向海面的吗?”这些问题构成了决策树中的决策节点,是一种数据分裂方法。每个问题都有助于个人做出最终决定,该决定将由叶节点表示。符合标准的观测值将进入“是”分支,而不符合标准的观测值则进入备用路径。决策树旨在找到划分数据子集的最佳分裂,并且通常会通过分类和回归树 (CART) 算法进行训练。基尼系数、信息增益或均方误差 (MSE) 等指标可用于评估分裂的质量。
上述决策树是分类问题的一个示例,其中,类标签是“冲浪”和“不冲浪”。
虽然决策树是常见的监督学习算法,但它们容易出现偏差和过度拟合等问题。然而,当多个决策树在随机森林算法中形成一个整体时,它们预测的结果就会更为准确,尤其是在各决策树彼此互不相关的情况下更是如此。
集成学习方法由一组分类器(例如决策树)组成,会汇总它们的预测结果,识别出现频率最高的结果。最著名的集成方法是 bagging(又称自助法聚合)和 boosting。1996 年,Leo Breiman(ibm.com 外部链接)提出了 bagging 方法;在此方法中,用替换法来选择训练集中的随机数据样本,这意味着可多次选择单个数据点。在生成多个数据样本后,将单独训练这些模型,根据任务类型(如回归或分类),这些预测一般或大多数都会产生更准确的估计值。此方法通常用于减少噪声数据集中的方差。
随机森林算法是 Bagging 方法的延伸,因为它会同时使用 Bagging 和特征随机性来创建一个不相关的决策树森林。特征随机性也称为特征组合或“随机子空间方法”(ibm.com 外部链接),它会生成一个随机特征子集,从而确保各决策树之间的相关性较低。这是决策树与随机森林之间的关键区别。虽然决策树会考虑所有潜在的特征分裂,但随机森林只会选择这些特征的子集。
再说回“我应该去冲浪吗?”这个例子,我为了确定预测而提出的问题可能不如其他人提出的一系列问题全面。通过考虑数据中可能存在的所有可变性,我们就可以降低过度拟合、偏差和总体方差风险,最终实现更精准的预测。
阅读并了解为什么 IBM 在《IDC MarketScape:2023 年全球 AI 治理平台》报告中被评为领导者。
随机森林算法有三个主要的超参数,需要在训练前设置。这三个超参数包括节点大小、树的数量和采样的特征数量。设置之后,就可以使用随机森林分类器来解决回归或分类问题了。
随机森林算法由一组决策树组成,集成中的每个决策树都由使用替换法从训练集中抽取的数据样本组成,这些样本称为自助样本。在该训练样本中,有三分之一被留作测试数据,称为袋外 (oob) 样本,我们稍后会对其进行介绍。然后,通过 feature bagging 添加另一个随机性实例,从而增加数据集的多样性并降低决策树之间的相关性。问题的类型不同,最终预测的确定方法也会有所不同。对于回归任务,将取各决策树的平均值,而对于分类任务,将根据多数票(即,出现频率最高的分类变量)产生预测类。最后,使用 oob 样本进行交叉验证,最终确定该预测。
随机森林算法在用于分类或回归问题时,具有许多重要优势,但也面临诸多挑战。其中包括:
随机森林算法已经应用于许多行业,帮助做出更明智的业务决策。一些用例包括: