什么时候应该避免随机森林?


25

众所周知,随机森林在各种任务上的表现都相当出色,被称为学习方法皮匠。是否存在应避免使用随机森林的任何类型的问题或特定条件?


8
你好 “ PLS是...的皮匠”,“ Bootstrap是...的皮匠”,“随机森林是...的皮匠” <-我建议您对这种说法有所怀疑。这只是一条评论:)
斯特凡·洛朗

Answers:


24

考虑报价的特定语言,皮革工是一种多功能工具:一件硬件,里面塞满了许多小玩意儿。这是一把钳子,一把刀,一把螺丝刀等等!皮革工无需单独携带所有这些工具,而是一件单品,您可以将其夹在裤子上,因此随时可用。这是方便,但是要权衡的是每个组件工具都不是最好的,在它的工作。开罐器很难使用,螺丝刀刀头的尺寸通常不正确,而刀子只能完成旋转工作。如果执行这些任务中的任何一项至关重要,那么最好使用专门的工具:实际的刀,实际的螺丝刀或实际的钳子为您服务。

可以用相同的术语来考虑随机森林。随机森林在各种数据集上都能产生出色的结果,并且对调整参数并不十分敏感。但这并不完美。您对问题了解得越多,就可以轻松构建专门的模型来适应您的特定问题。

在几个明显的情况下,随机森林将陷入困境:

  • 稀疏性 -当数据非常稀疏时,对于某些节点,自举样本和特征的随机子集将协作以产生不变的特征空间,这是非常合理的。没有生产性拆分,因此该节点的子级完全不可能有帮助。在这种情况下,XGBoost可以做得更好。

  • 数据不是轴对齐的 -假设在两个特征x1x2的空间中存在对角决策边界。即使这是与数据唯一相关的维度,也需要采用普通的随机森林模型进行多次拆分来描述该对角线边界。这是因为每个拆分的方向垂直于x1x2的轴。(这应该很直观,因为普通的随机森林模型会以x 1 > 4的形式进行拆分x1>4。)旋转林对每个分割选择的特征子集执行PCA投影,可以用来克服这一点:将投影投影到正交基础上,原则上会减少轴对齐属性的影响,因为分割将不再在原始基础上进行轴对齐。

    该图像提供了轴对齐的分割如何影响随机森林决策的另一个示例。决策边界在原点处是一个圆,但是请注意,此特定的随机森林模型绘制了一个近似圆的框。人们可以做很多事情来改善这一界限。最简单的方法是收集更多数据并构建更多树。 在此处输入图片说明

  • 随机森林基本上仅适用于表格数据,即,在数据是图像或观察结果在图表上联网在一起的意义上,特征之间没有牢固的,重要的定性关系。这些结构通常不能很好地被许多矩形隔板所近似。如果您的数据按时间序列显示,或者是一系列图像,或者显示在图形上,或者具有其他明显的结构,那么随机森林将很难识别它。我毫不怀疑,研究人员已经在尝试适应这些情况的方法上进行了开发,但是香草随机森林不一定会以有用的方式吸收这些结构。好消息是您通常会在这种情况下知道,例如,您知道可以使用图像,时间序列或图表,

我认为香草随机森林具有识别非矩形分区的潜力。例如,我们可以具有二次特征,并识别x ^ 2 <c之类的边界。
Aniruddha Acharya

2
@AniruddhaAcharya我说“奋斗”,不要失败。我在这里的回答清楚表明,二次特征不是一个无法解决的问题。但是对角线或二次方或其他非对齐类型的分割将要求树木以矩形方式一次又一次地在这些要素上分割以近似对角线/曲线。您可以在这篇文章的情节中看到这种效果:看看尖角。RF正在使用正方形近似圆。
Sycorax说恢复莫妮卡

我的意思是将二次(以及其他更高阶)特征提供给RF将减少建模非矩形分区的工作。例如,RF可以使用2个二次方来近似圆,而不是使用正方形。尽管我同意它并不像包含变量之间相互作用的模型那样容易,但是我觉得它并不那么困难,因为RF并不局限于对原始特征使用阈值。
阿尼鲁达(Aniruddha Acharya)2016年

1
@AniruddhaAcharya如果您知道平方项是正确的模型,则不需要随机森林:只需将平方项添加到线性模型即可。RF是近似任意函数的好方法,尤其是当它们具有轴对齐的决策函数时。
Sycorax说恢复莫妮卡

为什么@AniruddhaAcharya建议的(二次术语)特征工程不是与RF结合使用的有用步骤?是的,可以将那些特征添加到线性模型中:但是线性模型不能提供将许多针对不同特征子集进行了单独优化的结果的组合相结合的行为。
javadba

22

尖角。精确。

他们使用扩散方法。它们很适合块状的东西。当样本量较小时,它们就无法很好地满足复杂和高度详细的要求。我可以想象它们在多元时间序列数据上的表现不佳-当这里的某物取决于远处的那件事时。

梯度增强林可能适合或过度适合,但对于相同的数据,其误差会大大降低。

皮革工 ”不存在。没有“银弹”。有工具箱。了解您的工具,并妥善保管,以便他们可以照顾您。警惕“当您用锤子敲打时,每个问题都像钉子”,尤其是当您的工具箱中没有密集的库时。

除非您清楚地知道问题,否则很难想象有什么方法可以解决它,或者您喜欢的工具可以解决它。智慧建议您深入了解问题并非常熟悉您的工具。

补充:如果您有足够的计算资源或时间余量来使用其他功能。RF不仅训练迅速,而且执行迅速。非常深的加强结构要少得多。您必须有开销来支持这一点。


2
要唱反调这里:没有什么会“ 配合精心设计的和非常详细的事情做好,当样本量低
usεr11852说恢复单胞菌

5

这是我第一次真正回答问题,所以请不要拘泥于此..但我认为我可以回答您的问题:

如果您确实只对模型性能感兴趣,而不对可解释性之类的东西感兴趣,那么随机森林确实通常是一种非常好的学习算法,但在以下情况下确实会稍微差一些:

1.)当维数(特征数)相对于训练样本数非常高时,在这种情况下,进行正则线性回归或SVM会更好。

2.)在数据中存在较高阶表示/卷积结构的情况下,例如在计算机视觉问题中。在那些计算机视觉情况下,卷积神经网络的性能将优于随机森林(通常,如果有知识可以整合进学习中,那将是一件好事)。

话虽这么说,随机森林是一个很好的起点。我最欣赏他的机器学习技能的人之一总是从学习随机森林和正则线性回归器开始。

但是,如果您想获得最佳性能,那么我相信当今的神经网络。深度学习看起来是一种非常有吸引力的方法。像Kaggle这样的数据挑战网站上越来越多的获胜者使用深度学习模型进行比赛。神经网络的另一个优点是它们可以处理大量样本(> 10 ^ 6的样本可以使用随机梯度下降训练它们,一次提供数据位)。我个人认为这对于深度学习是一个非常有吸引力的职业。


2
好的答案,但您的最后一点是不正确的:可以针对所有常见的机器学习算法实施小批量培训,例如h2o
jubo 2014年

Oke,有趣,我不知道。您是说使用这些方法可以使用小批量/ SGD学习来训练一棵(决策)树,从而根据大部分训练总数据(例如65%)来构建一棵树吗?
MJW

1
我认为,当功能数量很多时,随机森林仍然应该很好-只是在构建一棵树时不要一次使用很多功能,最后,您将拥有一个独立分类器森林,这些分类器应该共同(希望)做得好。
2014年

据我了解,h2o使用map-reduce范式进行小批量训练。单个(CART)树无法在H2o中实现(但是我想未修剪的树是随机森林的一种特例,它只有一棵树,并且预测因子的选择最多?)。
jubo 2014年

2
(1)的理由是什么?您提出索赔,但不提供任何支持性论据。
Sycorax说恢复莫妮卡

0

首先,“随机森林”不能应用于以下数据类型:

  • 图片
  • 音讯
  • 文本(预处理后的数据将是稀疏的,而RF不能很好地处理稀疏数据)

对于表格数据类型,最好检查“随机森林”,因为:

  • 与神经网络或SVM相比,它需要更少的数据准备和预处理。例如,您不需要进行特征缩放。
  • 对于随机森林训练,您可以仅使用默认参数并设置树的数量(RF中的树越多越好)。当您将随机森林与神经网络进行比较时,训练非常容易(不需要定义体系结构或调整训练算法)。随机森林比神经网络更容易训练。
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.