在 PCA 期间,来自测试集的数据会“泄漏”到预测器中吗?

数据挖掘 降维 主成分分析
2022-03-05 12:18:04

读完这篇文章后,我有一个关于 PCA 的问题。

作者正在讨论在计算 PCA 时是否使用测试集。

但是,有几个要点需要理解:

1)我们不应该将训练集和测试集结合起来,一次获得整个数据的 PCA 分量。因为,这将违反泛化的整个假设,因为测试数据会“泄漏”到训练集中。换句话说,测试数据集将不再保持“看不见”。最终,这将削弱模型的泛化能力。

2)我们不应该分别对测试和训练数据集执行 PCA。因为,来自训练和测试 PCA 的结果向量将具有不同的方向(由于不等方差)。因此,我们最终将比较在不同轴上注册的数据。因此,来自训练和测试数据的结果向量应该具有相同的轴。

作者提到“因为,这将违反泛化的整个假设,因为测试数据会‘泄漏’到训练集中。换句话说,测试数据集将不再‘看不见’。”

据我了解...测试数据只能影响我们将选择哪台 PC(因为变化的方差),但数据不能真正泄漏(假设只有元数据泄漏)。对于每个观察,我们仍然只有来自它自己以前的变量(预测变量)的数据,只是在低维(投影)中。我对吗?或者在计算来自测试集的矩阵数据时会泄漏到什么地方?

2个回答

作者是对的。你错了。没有“只有元数据泄漏”或“不能真正泄漏”之类的东西。这就像说“真的没有怀孕”——要么你怀孕了,要么你没有。这里也一样——数据要么泄露,要么不能泄露。在这种情况下,数据可能会泄漏。也许只有部分数据,但很难知道它的影响到底有多大,影响有多大。它可能非常糟糕,也可能不是;但是由于您不知道,因此使用您知道结果可能毫无意义的方法进行测试并不是一个好主意。

作者是对的。数据泄漏是指您使用训练期间不可用的其他信息来训练您的 ML 模型。在 PCA 中,如果您使用测试数据,您就是在使用来自测试数据的一些见解作为训练过程的一部分,从而导致数据泄漏。

机器学习精通解释数据泄漏如下:

如果不是完全无效的预测模型,数据泄漏可能会导致您创建过于乐观的预测模型。

数据泄漏是指使用来自训练数据集外部的信息来创建模型。这些额外的信息可以让模型学习或知道一些它原本不会知道的东西,进而使正在构建的模式的估计性能无效。

如果在您想使用该模型进行预测时,其值实际上在实践中不可用的任何其他特征,是一个可能会向您的模型引入泄漏的特征