随机森林回归之前的 PCA 为我的数据集提供了比随机森林回归更好的预测分数,如何解释它?

机器算法验证 回归 主成分分析 随机森林
2022-01-23 09:59:45

我有一个回归数据集,其中特征大约有 400 个变量,数据集本身大约有 300 个样本。我尝试在数据集上使用随机森林回归 (RFR),并使用袋外 (oob) 分数或 k-fold cv 分数来判断其性能。我现在看到的那种我试图理解的行为是,如果我直接使用 RFR,无论我使用多少棵树或者我结合了什么样的参数调整,我都不会获得好的性能,而如果我在 RFR 之前加入 PCA,我可以对 RFR 之前的 PC 数量和大约 8 或 9 台 PC 运行网格搜索,处理流程可以提供稍微下降的分数。当我扫描 PC 数量时,分数会在这个“最佳 PC 数量”附近上升和下降。

我试图理解这种行为,因为我试图在我发现的几个玩具数据集上使用相同的处理流程,通常有或没有 PCA 对 RFR 性能不会有太大变化。我担心的一个问题是我的数据集是一个非常嘈杂的数据集,到目前为止我尝试的大多数回归方法都不会提供很好的性能,除了这个 PCA-RFR 流程。所以我不确定这是否是一个垃圾进垃圾出的情况,这个 PCA-RFR 东西只是以某种方式过度拟合我的数据集。另一方面,我的特征彼此非常共线,而且我没有那么多数据来训练我的模型,所以 PCA 预处理可以帮助对数据集进行一些去噪,并且还可以帮助减少我的训练集的过度拟合与一组较小的“减少特征”,

如果有人以前看过这个并且有很好的解释或有任何关于 PCA-RFR 行为的参考论文,请告诉我,我将非常感激。

2个回答

如您所描述的那样,在数据集中使用随机森林有两个主要问题:

  1. 当特征是其他特征的单调变换时,随机森林表现不佳(这使得森林中的树木彼此之间的独立性降低)。

  2. 当您拥有的特征多于样本时也会发生同样的情况:随机森林可能会过度拟合数据集,并且您的袋装性能会很差。

使用 PCA 时,您可以摆脱降低 Ranfom Forest 性能的两个问题:

  1. 你减少了特征的数量。
  2. 你摆脱了共线特征。(所有共线特征将最终出现在单个 PCA 组件中)。

我想你只是回答了自己。一般来说,RF 在高维设置或特征多于样本时效果不佳,因此将特征从 400 减少到 8 会有所帮助,尤其是当您有很多嘈杂的共线特征时。在这种情况下,您过拟合的机会也较小,但要注意双重浸入和模型选择偏差。这样您就可以运行大量模型并选择最好的模型,这可能是偶然的,并且不会对看不见的数据进行概括。