我一直在阅读有关随机森林的阅读,但我真的找不到有关过度拟合问题的确切答案。根据布雷曼人的原始论文,在增加森林中的树木数量时,它们不应过分贴合,但似乎对此没有达成共识。这使我对这个问题感到困惑。

也许比我更多的专家可以给我一个更具体的答案,或者指向我正确理解问题的正确方向。

有帮助吗?

解决方案

每种具有高复杂性的ML算法都可以过度合适。但是,OP询问RF在增加森林中的树木数量时是否不会过分贴合。

通常,合奏方法将预测差异降低到几乎一无所有,从而提高了合奏的准确性。如果我们将单个随机模型的预期概括误差的差异定义为:

这里, ,集合的预期概括误差的差异对应于:

在哪里 p(x) Pearson的相关系数是两个随机模型的预测,这些模型对来自两个独立种子的相同数据训练。如果我们增加了RF中的DT数量,则更大 M, ,合奏的差异在 ρ(x)<1. 。因此,合奏的方差严格小于单个模型的方差。

简而言之,增加整体中单个随机模型的数量永远不会增加概括误差。

其他提示

您可能想检查 交叉验证 - 一个用于许多事情的Stachexchange网站,包括机器学习。

特别是,这个问题(完全相同的标题)已经多次回答。检查这些链接: https://stats.stackexchange.com/search?q=random+Forest+overfit

但是我可能会给您简短的答案:是的,它确实过度合适,有时您需要控制森林中树木的复杂性,甚至在它们成长太多时修剪 - 但这取决于您使用的图书馆建造森林。例如 randomForest 在r中,您只能控制复杂性

  1. 随机的森林确实过度合适。
  2. 当将更多树添加到模型中时,随机森林不会增加概括误差。使用更多的树,概括方差将零。

我做了一个非常简单的实验。我已经生成了合成数据:

y = 10 * x + noise

我已经训练了两个随机森林模型:

  • 一个有满的树木
  • 一棵修剪的树

具有完整树的模型的火车误差较低,但测试错误比带有修剪树木的模型更高。这两个模型的响应:

responses

明确的证据表明过度拟合。然后,我采用了过度拟合模型的超参数,并在每个步骤1树上添加时检查错误。我得到以下情节:

growing trees

如您所见,在添加更多树时,过度合适的错误不会改变,但模型已过度拟合。这里是 关联 对于我进行的实验。

结构化数据集 - >误导性的OOB错误

我发现我的工作实践中RF过度适合的案例很有趣。当数据是在OOB观测上结构化的RF时。

细节 :

我尝试预测每个小时的电力现货市场上的电价(每行数据集都包含价格和系统参数(负载,容量等),该小时的电价)。
电价是分批创建的(一刻在一次固定时在电力市场上创建了24个价格)。
因此,每棵树的oob obs是一组小时的随机子集,但是如果您预测接下来的24小时,您会一次完成所有操作(在第一刻,您获得所有系统参数,然后您预测24个价格这些价格),因此更容易做出OOB预测,然后再在第二天进行。 OOB obs不包含在24小时的块中,而是均匀分散的,因为预测错误的自相关更容易预测单小时的价格,而对于整个缺少小时的时间来说,这是缺少的。

在发生错误自相关时更容易预测:
已知,已知的预测,已知,预测 - OBB案
更难的一个:
已知,已知,已知,预测,预测 - 现实世界的预测案例

我希望它有趣

许可以下: CC-BY-SA归因
scroll top