【问题标题】:understanding max_feature in random forest了解随机森林中的 max_feature
【发布时间】:2020-12-03 23:34:56
【问题描述】:

我在训练森林时遇到了一个问题。我使用 5 折交叉验证和 rmse 作为指导来找出模型的最佳参数。我最终发现,当 max_feature=1 时,我得到了最小的 rmse。这对我来说很奇怪,因为 max_feature 是每次拆分时考虑的特征。一般来说,如果我想找到“最佳”参数来降低分裂中的杂质,那么树应该充其量考虑所有特征并找到分裂后杂质最低的一个结果。但是,就交叉验证而言,我得到 max_feature=1 是最低的 rmse。这是因为考虑的特征越多,树的通用性就越低?谢谢

【问题讨论】:

  • 我没有得到反对票。这是一个可能让许多人感到困惑的相关问题
  • @CutePoison 是的。想知道同样的事情。对问题投了赞成票以取消反对票。
  • 这里也一样 - 我在写我的大师时有一个非常相似的问题。这不是微不足道的

标签: python scikit-learn random-forest


【解决方案1】:

因此,随机森林的想法是,单个决策树的方差很大,但偏差很小(它是过拟合的)。然后我们创建不同的树来减少这种差异

X_i 成为森林中的树。假设每棵树都是 i.d,均值 mu 和方差 sigma,并让预测是所有 X_i 的均值。我们假设所有 X 都不是独立的(因为它们共享一些相同的训练数据和相同的特征)并且与某个常数 p 正相关。我们可以将均值(预测)的方差写为:

其中n 是树的数量。

由于除了p 之外的所有内容都是固定的,因此您希望尽可能减少p,即树之间的相关性,如果您对每个拆分都使用所有相同的功能,那么您很可能最终会得到一些相关的( “相同的”树),因此方差很大(即使您 CV 它)。

考虑到这一点,max_feature=1 是最佳选择并不奇怪,因为所种植的树木不太可能相同(或相似)。

这只是经典的“偏差-方差权衡”。

编辑:公式的证明

【讨论】:

  • 那么你会建议在超参数调优期间不要使用 max_feature = 1 吗?
  • 不,即使 max_feature=1,你也可以有一个小的 RMSE(我假设它是一个回归树)是有道理的,因为你降低了方差。如果数据难以描述目标,例如尝试为公平抛硬币建模,您将需要一些“简单”模型(平均值、中值等),因为其他一切都会严重过度拟合。
  • 这完全有道理。非常感谢
  • 您能否提供更多有关如何获得此公式的提示?谢谢
  • 已将其添加到答案中
猜你喜欢
  • 2018-02-25
  • 1970-01-01
  • 2019-02-26
  • 2013-02-06
  • 2013-04-26
  • 2015-09-29
  • 2016-07-23
  • 2021-03-30
  • 1970-01-01
相关资源
最近更新 更多