随机森林不需要交叉验证吗?

机器算法验证 交叉验证 随机森林 装袋
2022-03-11 22:36:59

说随机森林不需要交叉验证(k-fold 或其他)是否公平?我读到就是这种情况,因为我们可以查看现成的性能指标,而这些指标也在做同样的事情。

请帮助我在 RF 的背景下理解这一分类问题。谢谢!

2个回答

是的,随机森林的袋外性能与交叉验证非常相似。本质上,您得到的是使用较少树的替代随机森林留一。所以如果做得正确,你会得到轻微的悲观偏见。确切的偏差和方差属性将与外部交叉验证您的随机森林有所不同。

与交叉验证一样,正确性的关键点(即轻微的悲观偏差,而不是大的乐观偏差)是隐含的假设,即您的每一行数据都是一个独立的案例。如果不满足这个假设,袋外估计将过于乐观(就像“普通”交叉验证一样)——在这种情况下,建立一个分成独立组的外部交叉验证可能会容易得多而不是让随机森林处理这种依赖结构。


假设您在行之间具有这种独立性,您可以使用随机森林的袋外性能估计,就像相应的交叉验证估计一样:作为泛化误差的估计或用于模型调整(@horaceT 提到的参数或例如提升) . 如果您将它用于模型调整,一如既往,您需要对最终模型的泛化误差进行另一个独立估计。

话虽如此,树的数量和变量的数量都相当容易修复,因此随机森林是我考虑的模型之一,其样本量对于数据驱动的模型调整来说太小了。

  • 预测误差不会随着树木数量的增加而增加——它只是在某个时候不会进一步减少。因此,您只需投入更多的计算时间就可以了。

  • 每棵树中要考虑的变量数量取决于您的数据,但恕我直言,也不是很关键(从某种意义上说,您可以例如使用具有类似数据的先前应用程序的经验来修复它)。

  • 叶大小(用于分类)通常再次保留为 1 - 这再次不会消耗泛化性能,而只是计算时间和内存。

贺拉斯是对的。当您考虑 OOB 时,您并没有完全将其排除在您的模型之外。每棵树可能有不同的袋内和袋外样本,但森林会全部使用它们。这允许信息泄漏。

聚合有其弱点。我的理解是聚合是作为“加权平均”或“加权投票”完成的。如果有两棵树对真实数据群体具有相同的“真实”预测能力,但其中一棵树对训练样本具有更高的有效准确度,那么它将被赋予更高的权重。这样做的问题是,在其他条件相同的情况下,如果它在训练样本上具有更高的准确度,那么它在该样本之外的值上的准确度就会更低,也就是说,在一般人群的剩余部分中。在这种情况下,OOB 会因偏差如何影响聚合中的树权重而增加误差。

然后,对于单个交叉验证,想象相同的情况:两棵树在总体上具有相同的“真实”性能,但其中一棵树的训练结果比另一棵树更好。保留部分不会通知任何树,但它确实允许对性能进行无偏估计。测试错误表明,只要保留集足够大,具有更好“in-bag”性能的树将在整体数据上与其对应的树相同。经典的 OOB 不会显示这一点。

参考: