为什么 PCA 后训练误差大于验证误差?

数据挖掘 线性回归 主成分分析
2022-02-20 00:09:52

我们有 4000 个特征,我们正在应用主成分分析将它们的少量特征从 20 个减少到 100 个。

我们正在执行线性回归。

训练和验证错误都比不使用 PCA 更糟糕。

然而,我们注意到训练误差并没有降低,实际上已经变得比验证误差略大。

这是预期的吗?


编辑:

与其他主成分相比,第一主成分的方差比足够高。

我们注意到的是,如果您使用所有 4000 个主成分,那么训练误差和验证之间的差距会更大,并且当您重复该过程并将主成分减少到 1000、200、100、10 等时,那么训练错误更接近验证错误(即使两者都按预期增加)

2个回答

帮助我们实施 PCA 的基本原则是它能够解释变化,因此这取决于您使用多少 PC 以及它们解释了多少变化。他们绝对没有解释 100% 的变化,因此验证错误很有可能更高。

在应用 PCA 之前,您需要了解我们为什么应用它?我们应用它来减少计算工作量和问题的实际实现。PCA 的想法不是给出比问题中的实际变量更好的结果。

完整的变量列表通常可以获得更好的结果。

似乎有两个核心问题:

  1. 使用 PCA 转换变量后,错误会增加- PCA 从预测变量创建组件,并且与目标无关。这很重要,因为描述大多数方差数据的组件(PCA 的顶部组件)可能不是一个很好的预测器。如果您正在使用该组件,您的模型可能会变得更糟,并且您会看到错误的总体增加。我建议使用其他方法,例如随机森林或 GBM,来查找组件对预测变量的变量重要性。

  2. 训练错误大于验证错误- 您的模型对数据的拟合不足,或者您的验证数据在模型中有一些简单的示例。对于第一种情况,可能会放弃线性回归的正则化。对于第二种情况,使用交叉折叠验证来获得更好的错误估计。