随机森林详细解释

塔瓦什·阿格瓦尔

在上一篇文章中,我谈到了 决策树 并详细说明了它的工作原理。在这篇文章中,我们将讨论随机森林,它是决策树的集合。

随机森林几乎总是比单个决策树更好。这就是为什么它是最受欢迎的机器学习算法之一的原因。随机森林使用称为套袋的技术,这是一种整体方法。

在深入了解随机森林之前,让我们花一些时间了解Ensembles。

合奏

合奏是指被视为整体而不是单个的一组事物。在集成中,使用模型集合而不是单个模型来进行预测。

在集成模型家族中,流行的算法之一是随机森林,它是由大量决策树组合而成的集合。

原则上,可以通过组合所有类型的模型来制作合奏。集成可以具有逻辑回归,神经网络和少量决策树。

创建合奏之前,应牢记几点。这些是:

  1. 选择比个人效果更好的模型集合。
  2. 选择单个模型比单个模型更好地形成集合。

为了满足以上两点,我们的合奏应该是 多样的 和 可以接受的。让我们详细了解它们。

多元化

多样性确保模型可以起到补充作用,这意味着各个模型相互独立地进行预测。

多样性确保即使某些树木过度拟合,合奏中的其他树木也会抵消这种影响。与单棵树相比,树之间的独立性导致合奏的方差更低。

多样性代表独立性,即模型与其他模型不相关(也不受其他模型影响)。这意味着两个模型给出的答案(预测)是相互独立的。

考虑一个板球队的例子,我们的投球手,击球手,门将等具有不同的技能来保持多样性。

可接受性

可接受性意味着每个模型至少比随机模型更好。对于要被集成到集合中的每个模型来说,这是一个非常宽松的标准,即,它至少必须比随机猜测器更好。

可接受性意味着模型至少不会做出随机猜测,在二元预测的情况下,其P(成功)为0.50。因此,我们需要成功概率为> 50%.

再来一次,以板球队为例,其中每个球员都是好球员,并且从技能的角度来看是可以接受的。

我们知道如何创建一个集成体,但是如何保证该集成体比单个模型更好地工作?

  • 合唱团以多数票做出决定。
  • 由于我们在整体中的单个模型是可以接受的(即在二元预测的情况下每个模型的成功概率都大于50%),因此整体出现错误的可能性(即多数投票出错)的可能性要远小于任何单个模型。
  • 集成将克服单个模型的假设。考虑一个决策树过度拟合的随机森林的示例。顺其自然,因为机群中超过50%的模型拟合过度的可能性非常小。

装袋

随机森林使用装袋(这是一种集成方法)来创建决策树的整体。套袋代表 自举聚合.

装袋是一种从数据集中选择观察样本的技术。然后,将这些样本中的每一个用于训练森林中的每棵树。套袋是一种采样技术,并非特定于随机森林。

为了选择随机样本,可以使用自举技术进行替换。引导程序样本通常包含数据集中约30-70%的数据。 

  1. 自举观察的随机选择。
  2. 随机选择每个树的属性以确保随机森林中的多样性

注意: 选择引导程序样本后,将开始构建树,并在每个节点处选择一个随机的特征子集以对其进行拆分。这就是使随机森林比简单的装袋算法更好的原因。

出袋错误

在随机森林中,无需分离训练和测试数据。

考虑一个由三棵决策树组成的随机森林,其中每棵树都是基于引导样本生成的。由于每棵树都是基于引导样本(数据的40%到70%)构建的,因此30%的资源未被使用。同样,也会有其他树未使用第一个模型中30%的数据点的情况。因此,这将是随机森林中树木的测试数据,并且我们计算了准确性。

针对训练集中的每个观察完成上述步骤。一旦计算了每个观测值的所有预测,就将OOB误差计算为错误预测的观测值的数量,占观测值总数的一部分。

已经证明,使用OOB估计值与使用大小等于训练集的测试数据集一样准确。因此,OOB错误完全省去了搁置测试数据的需求。因此,OOB错误几乎与交叉验证错误一样好。

建立乐团所需的时间

建立整体需要执行以下步骤:

  1. 随机抽取一个观测值样本,假设j =总数的40%。
  2. 通过从子集特征空间中查找每棵树内的所有拆分来构建S树。因此,所需时间与树木的数量和建造每棵树木所需的时间成比例。

构建每棵树所需的时间与一棵树的平均级别数和在每个级别找到拆分所需的平均时间成比例。为了找到正确的分割,仅考虑特征f(√M)的子集。

超参数

  • max_features:您看到了max_features的最佳值-在极低的值下,组件树太简单了,无法学到任何有用的知识;而在极高的值下,组件树变得彼此相似(并违反了“多样性”标准) )。 
  • n_估计量:当您观察n_estimators的图以及训练和测试精度时,您会发现随着n_estimators值的增加,两个训练测试的精度都会逐渐增加。更重要的是,即使模型的复杂度不断增加,它也不会过度拟合。这是随机森林的一个重要好处-您可以随意增加树的数量,而不必担心过度拟合(如果计算资源允许的话)。

随机森林的优势

  1. 多样性:  之所以会出现这种情况,是因为您用属性/功能/变量的子集来创建每棵树,也就是说,制作每棵树时不会考虑所有属性。为每棵树考虑的属性的选择是随机的。这确保了树彼此独立。
  2. 稳定性:  出现的原因是大量树木给出的答案平均起来。随机森林的模型方差比普通的单个树低。
  3. 不受维度诅咒的影响:由于每棵树都不会考虑所有要素,因此要素空间(模型必须考虑的要素数量)减少了。这使得该算法不受维度诅咒的影响。较大的特征空间会导致计算和复杂性问题。
  4. 可并行性:您需要大量的树木才能造林。由于两棵树是根据不同的数据和属性独立构建的,因此可以分别构建。这意味着您可以充分利用多核CPU来构建随机森林。假设要构建4个核心和100棵树。每个核心可以建造25棵树以造林。
  5. OOB或袋外错误: 训练和测试数据之间没有区别。
  6. 可解释性: 随机森林模型易于解释。

概要

要生成n个决策树的随机森林,请执行以下步骤:

  1. 根据数据创建n个引导程序样本。
  2. 在不同的引导程序样本上训练每棵树。
  3. 每棵树都做出一个预测,最终的预测将是所有这些预测的多数分数。

作者信息

塔瓦什·阿格瓦尔

网站: http://tavishaggarwal.com

塔瓦什·阿格瓦尔是一名数据科学家 在海得拉巴工作,在解决电子商务,金融,医疗保健等不同领域的实际业务问题方面拥有丰富的经验。 他对技术充满热情,并且热爱团队合作。