Answers:
考虑报价的特定语言,皮革工是一种多功能工具:一件硬件,里面塞满了许多小玩意儿。这是一把钳子,一把刀,一把螺丝刀等等!皮革工无需单独携带所有这些工具,而是一件单品,您可以将其夹在裤子上,因此随时可用。这是方便,但是要权衡的是每个组件工具都不是最好的,在它的工作。开罐器很难使用,螺丝刀刀头的尺寸通常不正确,而刀子只能完成旋转工作。如果执行这些任务中的任何一项至关重要,那么最好使用专门的工具:实际的刀,实际的螺丝刀或实际的钳子为您服务。
可以用相同的术语来考虑随机森林。随机森林在各种数据集上都能产生出色的结果,并且对调整参数并不十分敏感。但这并不完美。您对问题了解得越多,就可以轻松构建专门的模型来适应您的特定问题。
在几个明显的情况下,随机森林将陷入困境:
稀疏性 -当数据非常稀疏时,对于某些节点,自举样本和特征的随机子集将协作以产生不变的特征空间,这是非常合理的。没有生产性拆分,因此该节点的子级完全不可能有帮助。在这种情况下,XGBoost可以做得更好。
数据不是轴对齐的 -假设在两个特征和的空间中存在对角决策边界。即使这是与数据唯一相关的维度,也需要采用普通的随机森林模型进行多次拆分来描述该对角线边界。这是因为每个拆分的方向垂直于或的轴。(这应该很直观,因为普通的随机森林模型会以x 1 > 4的形式进行拆分。)旋转林对每个分割选择的特征子集执行PCA投影,可以用来克服这一点:将投影投影到正交基础上,原则上会减少轴对齐属性的影响,因为分割将不再在原始基础上进行轴对齐。
该图像提供了轴对齐的分割如何影响随机森林决策的另一个示例。决策边界在原点处是一个圆,但是请注意,此特定的随机森林模型绘制了一个近似圆的框。人们可以做很多事情来改善这一界限。最简单的方法是收集更多数据并构建更多树。
尖角。精确。
他们使用扩散方法。它们很适合块状的东西。当样本量较小时,它们就无法很好地满足复杂和高度详细的要求。我可以想象它们在多元时间序列数据上的表现不佳-当这里的某物取决于远处的那件事时。
梯度增强林可能适合或过度适合,但对于相同的数据,其误差会大大降低。
“ 皮革工 ”不存在。没有“银弹”。有工具箱。了解您的工具,并妥善保管,以便他们可以照顾您。警惕“当您用锤子敲打时,每个问题都像钉子”,尤其是当您的工具箱中没有密集的库时。
除非您清楚地知道问题,否则很难想象有什么方法可以解决它,或者您喜欢的工具可以解决它。智慧建议您深入了解问题并非常熟悉您的工具。
补充:如果您有足够的计算资源或时间余量来使用其他功能。RF不仅训练迅速,而且执行迅速。非常深的加强结构要少得多。您必须有开销来支持这一点。
这是我第一次真正回答问题,所以请不要拘泥于此..但我认为我可以回答您的问题:
如果您确实只对模型性能感兴趣,而不对可解释性之类的东西感兴趣,那么随机森林确实通常是一种非常好的学习算法,但在以下情况下确实会稍微差一些:
1.)当维数(特征数)相对于训练样本数非常高时,在这种情况下,进行正则线性回归或SVM会更好。
2.)在数据中存在较高阶表示/卷积结构的情况下,例如在计算机视觉问题中。在那些计算机视觉情况下,卷积神经网络的性能将优于随机森林(通常,如果有知识可以整合进学习中,那将是一件好事)。
话虽这么说,随机森林是一个很好的起点。我最欣赏他的机器学习技能的人之一总是从学习随机森林和正则线性回归器开始。
但是,如果您想获得最佳性能,那么我相信当今的神经网络。深度学习看起来是一种非常有吸引力的方法。像Kaggle这样的数据挑战网站上越来越多的获胜者使用深度学习模型进行比赛。神经网络的另一个优点是它们可以处理大量样本(> 10 ^ 6的样本可以使用随机梯度下降训练它们,一次提供数据位)。我个人认为这对于深度学习是一个非常有吸引力的职业。
首先,“随机森林”不能应用于以下数据类型:
对于表格数据类型,最好检查“随机森林”,因为: