关于随机森林的问题

710 阅读22分钟

在这篇文章中,我们介绍了关于随机森林的最重要的面试问题。

1.什么是随机森林算法?

随机森林算法是一种集合学习技术,这意味着它结合了许多分类器来提高模型的性能。为了根据输入数据确定输出,随机森林使用几个决策树(分类和回归树)模型。它通过使用样本和随机选择的特征(变量)来生成它所使用的决策树。
现在,当随机森林被用来预测分类任务的结果时,所有决策树中的模态(出现频率最高的)输出被选为前进方向。但是,如果目标是预测回归问题的结果,在继续前进之前,要获得所有决策树输出的平均值(平均数)。

2.随机森林应用于哪些领域?

许多部门都使用随机森林算法来帮助他们做出更好的商业决策。使用案例的例子有。

  1. 金融。这种方法比其他方法更受青睐,因为它在管理和预处理数据方面花费的时间更少。它可以用来评估高风险消费者的欺诈和期权定价问题。
  2. 医疗保健。随机森林方法被用于计算生物学,以解决包括基因表达分类、寻找生物标志物和注释序列等问题(链接在IBM之外;PDF,737 KB)。因此,医生可以估计对某些药物的药理反应。
  3. 电子商务。通过使用推荐引擎,可以完成交叉销售。

3.随机森林是如何工作的?

随机森林算法有三个关键的超参数,必须在训练前设置。节点大小、树数和采样特征数是其中的几个。从那里,分类或回归问题可以用随机森林分类器来解决。构成随机森林方法的合集中的每一棵决策树都是由从训练集中抽取的数据样本建立的,这些样本被称为自举样本。

训练样本的三分之一--也被称为袋外(oob)样本--被留作测试数据;我们稍后将回到这个样本。数据集随后通过特征袋化给予第二次随机化注入,增加数据集的多样性,降低决策树的相关性。

预测将根据问题的类型以不同的方式确定。
对于回归工作,各个决策树将被平均化,而对于分类任务,预测的类别将由多数票,或最常见的分类变量决定。

然后通过使用oob样本进行交叉验证,最终确定预测结果。

4.为什么我们需要随机森林算法?

这是一个很好的问题,回答也很简单。随机森林使用交叉验证来提供更准确的结果,可用于分类或回归问题。即使是缺失值也可以处理,而且可以处理具有许多特征的较大数据集合(维度)。最关键的是,由于它选择的是随机特征,并在现有的数据中进行了很好的归纳,它在完成所有这些工作时,过拟合的程度最小。这使得它比传统的决策树方法要准确得多,因为传统的决策树方法在上述的大部分特征上都有缺陷。

5.随机森林方法的优势是什么?

随机森林方法在应用于分类或回归任务时有各种显著的好处。
其中一些包括:
过拟合的机会较少。决策树有密切拟合训练数据中包含的所有样本的倾向,这增加了过拟合的可能性。
然而,当随机森林中有大量的决策树时,分类器不会过度拟合模型,因为不相关的树的平均化减少了总方差和预测误差。
灵活性。随机森林是一种深受数据科学家喜爱的方法,因为它可以准确地处理分类和回归工作。
随机森林分类器从特征袋中获益,即使部分数据缺失也能保持准确性,这使它成为猜测缺失值的有用工具。

简单评估特征贡献。随机森林使评估变量贡献变得简单。有各种方法来确定特征的相关性。
为了衡量当一个特定的变量被移除时,模型的准确性下降了多少,经常利用基尼重要性和平均下降不纯度(MDI)。一个不同的重要性指标是置换重要性,通常被称为平均下降精度(MDA)。通过随机地对oob样本中的特征值进行置换,MDA可以确定精确度的平均下降。

6.随机森林方法的缺点是什么?

随机森林方法在应用于分类或回归任务时有各种明显的缺点。

需要很长时间的过程。因为随机森林方法可以处理大数据集,它们可以做出更准确的预测。然而,由于它们必须为每个单独的决策树计算数据,它们可能需要很长的时间来处理数据。
需要更多的资源。因为随机森林分析更大的数据集,所以需要更多的资源来存储这些数据。
更复杂:与决策树森林相比,单个决策树的预测更简单易懂。

7.当数据丢失时,随机森林如何保持准确性?

它们通常采用两种技术来实现这一点。

  1. 由于现有的数据没有被使用,放弃或消除没有数值的数据点并不是一个理想的选择。
  2. 如果是数字数据,就用中位数来填补缺失的数值;如果是分类数据,就用模式来填补缺失的数值。即使如此,也有局限性,因为偶尔会出现数据不足的情况,无法描绘出准确的画面。

8.什么是集合方法?

多个模型(通常被称为 "弱学习者")被教导使用集合学习范式来解决相同的问题,然后将这些结果结合起来,产生更好的结果。其基本主张是,通过适当结合弱模型,我们可以产生更精确和/或可靠的模型。

9.如何提高随机森林的准确性?

取决于你的目的和数据。你必须考虑的众多事情之一是超参数。如果你使用的参数不正确或不相关,你几乎不可能获得良好的准确性。
通过反复手动调整参数来确定一个体面的参数组合也许是可行的,但我建议使用GridSearch或贝叶斯优化等方法来做。

10.为什么随机森林算法很受欢迎?

在分类问题上,最受欢迎和经常应用的机器学习技术之一是随机森林。虽然它对回归问题的表述也很有效,但分类模型是它最耀眼的地方。
现代数据科学家现在把它作为改善预测模型的致命武器。该算法的最大特点是它依赖于最少的假设,使数据准备更加简单和快速。

11.为什么随机森林不受离群值的影响?

另一方面,树形方法是 "贡献性 "方法,其中只有局部的点,或同一叶子节点中的点,会影响对某一特定点的估计。输出中的离群值具有 "隔离 "作用。因此,可能极大地改变某些算法精度的异常值对随机森林的预测影响较小。

12.什么是随机森林的假设?

一些决策树可能会预测出正确的输出,而另一些则可能不会,因为随机森林结合了许多树来预测数据集的类别。但当所有的树都结合在一起时,它们就会预测出正确的结果。因此,以下是改进的随机森林分类器的两个假设。

  1. 要想让数据集的特征变量预测真实的结果而不是推测的结果,数据集中应该有一些实际的数值。
  2. 每棵树的预测结果必须有极低的相关性。

13.随机森林和决策树的区别

以下是随机森林和决策树之间的一些最重要的区别。

  1. 数据处理。决策树使用一种算法来决定节点和子节点;一个节点可以被分割成两个或更多的子节点,通过创建子节点可以得到另一个同质的子节点,所以我们可以说节点已经被分割。随机森林是多个决策树的组合,也就是数据集的类别。其中一些决策树可能会给出正确的输出,而另一些决策树可能不会给出正确的输出,但是所有的树一起预测
    分割是使用最初可以使用的最好的数据进行的,而且这个操作一直重复到所有的子节点都有可靠的数据。

  2. 复杂性。决策树用于分类和回归,是一系列直截了当的选择,采取这些选择是为了获得预期的结果。简单的决策树的优点是这种模型的解释很简单,在建立决策树时,我们知道哪个变量和变量的值是用来分割数据的,因此,输出会很快得到预测。相比之下,随机森林更为复杂,因为它结合了决策树,在构建随机森林时,我们必须定义我们想要构建的树的数量以及我们需要多少变量。

  3. 准确度。与决策树相比,随机森林对结果的预测更准确。我们也可以说,随机森林建立了许多决策树,并将其结合在一起,从而得到一个稳定而准确的结果。当我们在随机森林中使用算法解决回归问题时,每个节点都有一个公式来获得准确的结果,而通过使用学习模型的组合来提高结果的准确性。

  4. 过度拟合。在使用算法时,存在过拟合的风险,这可以被看作是机器学习中的一个普遍瓶颈。过度拟合是机器学习中的重要问题。
    当机器学习模型在未知数据集上无法表现良好时,这就是过度拟合的标志。如果在测试或验证数据集上发现错误,并且明显大于训练数据集上的错误,那就更是如此。当模型在训练数据中学习到波动数据时就会发生过拟合,这对新数据模型的性能有负面影响。
    由于在随机森林中雇佣了几个决策树,过拟合的危险比决策树要低。
    当我们在给定的数据集上雇佣决策树模型时,准确率会增加,因为它包含更多的分裂,这使得它更容易过拟合数据并验证它。

14.在随机森林中如何计算特征重要性?

有两种技术可以计算集成到随机森林算法中的特征重要性:
平均减少不纯度,也被称为基尼意义,是从随机森林结构中计算出来的。
让我们研究一下随机森林的架构。
它由许多决策树组成。
每个决策树都有内部节点和叶子。
内部节点使用选择的特征来决定如何将数据集分成两个具有相关反应的不同集合。

用于

选择内部节点特征的标准可能从分类任务的基尼意义或信息增益到回归活动的差异减少。我们可以衡量每个特征如何减少分裂的不纯度(减少最多的特征被选为内部节点)。
我们可以跟踪每个特征的平均不纯度减少情况。
森林中所有树木的平均数可以作为一个特征的重要性的代理。
这种技术在Scikit-Learn随机森林的实现中提供(对于分类器和回归器)。
使用这种方法时应考虑计算的重要性的相对值,这一点很重要。
这种方法的主要好处是计算速度;所有必要的值都是在受训者处于Radom森林时计算的。该方法的缺点包括它倾向于(选择为重要的)数字特征和具有高cardinality的分类特征。此外,当存在相关的特征时,它可能会选择一个特征而忽略另一个特征的重要性(这可能会导致错误的结论)。
基于准确率的平均下降,平均下降准确率的方法计算了特征在permuted out-of-bag(OOB)数据上的重要性。scikit-learn包不包括这种方法的实现。

15.随机森林是否需要剪枝?为什么需要或不需要?

非常深的或全深的决策树有一个倾向,那就是捡到数据的噪音。他们过度拟合数据,导致变化大但偏差小。修剪是减少决策树过拟合的一个适当方法。

然而,一般来说,全深度随机森林会做得很好。树(或弱学习者)之间的相关性会很差,因为随机森林训练使用自举聚合(或带替换的抽样),同时随机选择特征进行分割。因为这些树是不耦合的,即使每棵树都有很高的方差,但集合的输出是合适的(较低的方差和减少的偏差)。

16.解释一下随机森林如何为分类和回归问题提供输出?

分类。随机森林的输出是大多数树所选择的输出。
回归。每棵树的平均预测是随机森林的输出。

17.如何用随机森林进行无监督学习?

决策树模型的目标是通过从一些输入数据开始,通过一连串的if-then阶段,得出预定的输出值之一。
相比之下,随机森林模型结合了一些决策树,这些决策树是用起始数据的不同子集训练出来的。
例如

,如果你想利用一棵决策树来预测特定客户使用银行提供的特定服务的频率,你可以收集关于消费者过去访问银行的频率以及他们使用过哪些服务的信息。你将确定影响客户决策的特定品质。决策树将产生一些规则,使你能够预测消费者是否会使用这些服务。

如果你将相同的数据输入随机森林,该算法将从一组随机选择的客户中产生多个树。每棵树的单独结果之和将是森林的输出。

18.你将如何提高随机森林的性能?

尝试以下措施可能会帮助随机森林更好地发挥作用。

  1. 利用特征工程和质量更高的数据集。模型使用过多的特征和数据是不可取的,因此,偶尔有必要进行一些特征缩减。
  2. 调整算法的超参数。
  3. 试用几种算法

19.什么是随机森林中的近似性?

近似度 "这个词指的是两个案例的相似性或接近性。
对于每一对案例、观察值或样本点,近似度是确定的。如果两个案例在一棵树上有相同的终端节点,那么它们的距离就比较近。近似度通过除以所有树运行结束时的总树数来归一化。为了替换缺失的数据,找到异常值,并创建有启发性的低维数据视角,接近度被使用。

20.随机森林中的随机指的是什么?

在为每棵树选择特征的过程中,引入了随机性。
对于形成的每棵树,算法选择一组随机的特征来分割一个节点,而不是寻找最关键的特征。
因此,模型可以更加灵活,因素混乱,结构不那么确定,从而提高样本外的性能,同时降低过拟合的危险。

21.什么是袋外误差?

OOB(袋外)误差
一种计算预测误差的方法,可以使随机森林在训练时得到拟合和验证,这种方法被称为袋外(OOB)误差/袋外估计。
让我们用下面的说明来更好地理解:
假设20个学生中的每一个都得到了不同的数据子集(即在阶段1,和阶段2中看到的)。一个观察值可能包含在多个学习者的子集中,因为我们是用替换法取样。因此,我们将以如下方式计算出袋外效应。

  1. 在每个观察点之后重复进行
  2. 确定每个观察结果中之前没有这个观察结果的学生的子集。
  3. 用你上面指定的学生来进行这个观察的预测。
  4. 对每个观察的预测误差进行平均化

这样我们就可以评估基于没有用来训练基本学习者的观察所做的预测。这也消除了对任何验证集的要求。

22.什么是熵?

熵,通常被称为香农熵,是对有限集合S的数据的随机性或不确定性的衡量,用H(S)表示。
screenshot-docs.google.com-2020.12.21-17_22_40

简单地说,它衡量的是预示一个特定事件的纯度。根节点是自上而下构建决策树的基础。这个根节点的数据被进一步划分或归类为具有同质化实例的子集。

23.为什么随机森林模型被认为是不可解释的?

决策树可以很容易地转化为规则,提高结果的人类可解释性,并为所做的选择提供解释。
通常的准则是对随机森林采用尽可能多的树。大多数情况下,很难理解为什么一组数百棵树会做出这样的决定。

24.为什么随机森林的训练效率比袋法好?

对于随机森林来说,只是随机选择所有特征的一个子集,从子集中选出最好的分割特征来划分树中的每个节点。这就是随机森林与Bagging的不同之处。在袋化时,分离一个节点时,所有的特征都被考虑在内。

因为bagging考虑到了所有的属性,所以随机森林的训练效率更高。

25.解释一下在随机森林中如何使用袋外误差来获得特征的重要性。

袋外误差用于以下技术来确定特征的重要性:
在不做任何改变的情况下,为基础树生成袋外误差。
标准袋外误差是这样的。确定用于构建树的数据中每个特征的取值范围。具体来说,数据的最大值和最小值是什么?将所有数据点中每个特征的值在其最大值和最小值之间随机排列,一次一个。在只对一个特征进行置换后,找到下一个出包错误。
应计算出当前出包错误和上一个出包错误之间的差异。几乎可以肯定,新的袋外误差将高于平均值。在将被包的特征恢复到原来的值后,通过改变一个新的特征重新启动程序。最关键的特征是那些当它们被permuted时,其不准确度增加最多。最不重要的特征是那些误差增加最小的特征。

这种方法可以比作不给某人提供单个机器零件,但允许他们组装整台机器。如果装配出现灾难性的失败,那么这个零件一定是至关重要的。如果在机器制作完成后,你无法分辨出其中的差别,那么零件一定不是非常关键的。

26.给出一些选择随机森林而不是神经网络的理由
就处理成本而言,随机森林比神经网络的成本低。可能需要一个GPU来完成神经网络的训练。
与随机森林相比,神经网络需要更多的信息。
神经网络的运作就像一个 "黑盒子",创造者无法看到输出是如何确定的。随机森林中大量的树可能会让人难以理解这个集合体,即使每棵树都是独特的,容易理解。集合体中最具代表性的树可以在一些不同的方法中找到。因此,从这个意义上讲,随机森林更有优势。
当给定不寻常的输入时,神经网络经常有偏离预期行为的更大风险。

27.如何用随机森林判断特征的重要性?
确定数据中各种特征的相对价值的能力是使用随机森林可以做到的最耐人寻味的事情之一。
为了了解不同特征对结果的影响,可以显示各种特征和输出,并对异常值进行评估。
使用树的每个阶段的信息增益来计算各种特征之间的相对信息增益是衡量特征重要性的一种方法。
该算法的步骤在以下列表中提供。

  1. 从一个零填充的数组开始,其大小与模型中的特征数量相同。

  2. 使用用于创建树的信息,遍历它。
    当你到达树的一个分支时,识别该分支所依赖的特征。

  3. 每个分支都是在一个单一的、独特的特征上划分的。而不是顺着树的单独分支,计算到达每个分支的数据点的数量。

  4. 而不是在分支之前,在分叉之后计算知识增益。
    无论信息增益是如何衡量的(如基尼系数、熵),都是如此。

  5. 信息增益被乘以到达分支的数据点的数量,并被添加到数据点被分离的特征处的阵列中。

  6. 在每个分支的信息增益被添加后,阵列被归一化。

  7. 然后依次对随机森林中的每一棵树进行特征重要性的计算。然后通过平均计算整个随机森林的特征重要性。

28.如何使用隔离森林进行异常情况检测?
与随机森林类似,隔离森林(IF)是使用决策树构建的。此外,这种模型是无监督的,因为没有预定义的标签存在。隔离森林的基础是异常点是 "少数不同 "的数据项。随机抽样的数据在隔离森林中使用基于随机选择属性的树状结构进行处理。由于花了更多的切割来隔离那些在树上走得更远的样本,所以它们不太可能是异常的。
给定一个数据集,在创建或训练一棵隔离树时涉及以下步骤。

  1. 挑选一个随机的信息子集

  2. 在隔离数据集中的每个点之前。

  3. 一次选择一个特征

  4. 在其范围内的一个偶然的位置上划分出该特征。

  5. 一个离群的点可以用少量的分割来分离,如下图所示,而一个内部的点则需要更多的分割。
    给定一个新的点,预测的过程需要。

  6. 在森林中的每棵树上进行二进制搜索,直到找到一片叶子。

  7. 以通往叶子的路径深度为基础,计算异常得分。

  8. 一般来说,内部点到叶子的路程比无名点要长得多,这使得它们更难被隔离。

29. 你说的袋法是什么意思?
集合学习技术被称为 "装袋",通常被称为 "自举聚合",经常被用来减少噪声数据集的差异。在袋法中,训练集的数据被随机抽样和替换,允许对相同的数据点进行多次选择。在生成多个数据样本后,这些弱小的模型被独立训练,根据任务的不同--例如分类或回归--这些预测的平均值或大多数会产生一个更准确的估计。
随机森林算法,利用特征随机性和袋装化来建立一个不相关的决策树森林,被认为是袋装化方法的延伸。

30.什么时候应该使用其他算法而不是随机森林?

尽管训练速度极快,但决策树的集合体(如随机森林,这个名字是为一个特定的实现而注册的)在训练后需要很长时间才能提供预测结果。
该模型必须使用更多的树,因为更准确的集合体需要更多的树。这种方法在大多数实际情况下是快速的,但可能有一些情况下,运行时间的性能是至关重要的,而其他方法则被看好。
关键是要理解这种工具是用于预测建模的,而不是用于描述性的;如果你需要描述数据中的关系,你应该探索其他的解决方案。
决策树群也许是现在最实用的工具,可以快速、简单、适应性强的预测建模,但像任何方法,它们不是没有缺陷。