训练和测试数据集上的 PCA:我需要合并它们吗?

机器算法验证 主成分分析
2022-03-19 11:47:31

我有训练和测试数据集来处理。我想应用 PCA 来减小尺寸。

在应用 PCA 之前,我是否需要将训练和测试数据集合并在一起?或者我应该在训练数据集上应用 PCA,选择缩减维度,并为训练和测试数据集处理缩减数据集?

2个回答

主成分分析将为您提供一些主成分W; 这些成分将定性地代表样本中的主要和正交变化模式。您将使用其中的(一些)W投影您的原始数据集X到低维子空间T. 这是您的新数据集,PC 实际上是一个轴系统,我们可以在其上表示数据X以紧凑的形式。

现在,正如@RobertKubrick 提到的,您需要确保测试数据集中的信息不会“泄露”到您的训练数据集中。如果发生这种情况,那么您将在预测过程中利用“应该未知”的信息;您的错误估计将是错误的。您的模型的泛化将受到影响。

特别是对于您的情况,您应该执行以下操作:计算主成分Ws 在训练数据集上,然后利用训练样本W减少测试数据集的维度。我这样说是因为:

  1. 如果你合并了你的训练和测试数据集来计算你的 PC,你显然会利用来自测试集的信息。这显然是错误的。
  2. 如果您做了两个独立的 PCA,您将比较在不同轴上注册的数据(如果有任何原理。组件不是符号可识别的,因此来自它们的估计参数也会有同样的问题)。您投影数据的轴应该相同,否则您将处于典型的“橙苹果情况”。

显然,如果你这样做k-折叠交叉验证,或类似的东西(例如千斤顶刀),您需要计算新的主成分W每一次。IT Jolliffe 的主成分分析是 PCA 的标准和很好的参考;我强烈推荐它。

测试集永远不应包含在您的建模决策中,否则您将失去不拟合数据的好处。这适用于回归、PCA 或任何其他拟合技术。

您想要计算模型“看不见”的数据的预测误差。