2017-09-13 93 views
0

根据我的理解,RF随机选择特征,因此很难过度配合。但是,在sklearn中,渐变增强还提供了max_features选项,可以防止过度配合。那么,为什么会有人使用随机森林? 任何人都可以解释什么时候使用基于给定数据的渐变增强vs随机森林?渐变增强vs随机森林

任何帮助,高度赞赏。

+2

你的问题有点像说“汽车驶下道路,但是船只在水中快速行驶,为什么有人会用船去一条路?”当然,随机森林具有某些适合的数据问题。这是一种监督学习方法,当你有很多功能并且希望让每个人都可能在模型中扮演角色而不必担心偏见时,这种方法是很好的。 –

+1

@TimBiegeleisen不同之处在于,很容易识别何时使用船只以及何时使用汽车。并不总是清楚何时使用随机森林与何时使用梯度提升。有几个复杂的梯度增强库(lightgbm,xgboost和catboost)可能会胜过随机森林,以解决大多数类型的问题。识别指示随机森林何时可能表现更好的问题特征是一个很好的问题。我当然没有答案。 – ftiaronsem

+0

我投票结束这个问题作为题外话题,因为它涉及到[机器学习,而不是软件开发](// meta.stackoverflow.com/q/291009/1233251)。您可以在[交叉验证](// stats.stackexchange.com)或[DataScience.SE](// datascience.stackexchange.com)上提出这些问题。 –

回答

0

类似的问题问在Quora上: https://www.quora.com/How-do-random-forests-and-boosted-decision-trees-compare

我同意作者的链接,随机森林是更强大的 - 他们并不需要太多的具体问题调整取得了良好的效果。除此之外,根据我自己的经验还有其他一些项目:

  • 随机森林可以在小数据集上执行得更好;梯度提升树木数据饥渴
  • 随机森林更容易解释和理解。这也许看起来很傻,但如果需要由技术人员少
0

根据我个人的经验被用于能带来更好的采纳模型,随机森林可能是一个更好的选择,当..

  1. 您在小数据集上训练模型。
  2. 您的数据集有几个功能可以学习。
  3. 您的数据集的Y标志计数较低,或者您尝试预测发生或极少发生机会的情况较少。

在这些情况下,像XGBoost和轻GBM可以过度拟合梯度推进算法(尽管它们的参数被调整),同时像随机森林或甚Logistic回归简单的算法可以执行更好。为了说明,对于XGboost和Ligh GBM,来自测试集的ROC AUC可能与随机森林相比更高,但与来自火车集的ROC AUC显示出太高的差异。尽管Gradient Boosting算法具有很强的预测性,但在某些情况下,随机森林利用乞讨方法(随机选择)的模型稳定性优于XGBoost和Light GBM。但是,渐变增强算法在一般情况下表现更好。