将 PCA 反转回原始变量

机器算法验证 主成分分析
2022-01-25 09:56:48

我有一组数据,其中包含个变量描述的我做了一个 PCA 来将它减少到只有 2 个维度,这样我就可以制作一个漂亮的 2D 数据图。我知道绘图的坐标(即 PCA 分数)基本上是通过将原始数据的乘积(居中后)与每个变量的负载相加来计算的,因此:nmx,y

PC1=X1L1+X2L2+...+XmLm.

我的问题是,如果我选择 PCA 空间中的任意点(即的值,或),是否有一种方便的方法来翻译它回到一组原始值(即)? PC1PC2xyX1,X2,,Xm

注意 100% 的反转显然不是预期的(因为我只使用 2 台 PC),所以一个不错的近似值是可以的。

2个回答

是的。基本上,您所做的是: 其中是主成分,是您的数据矩阵(居中,数据点在列中)和是具有载荷的矩阵(具有的样本协方差矩阵的特征向量的矩阵)。因此,你可以这样做: 但是,因为载荷矩阵是正交的(它们是特征向量!),那么,所以:

PC=VX,
PCXVX
V1PC=X,
V1=VT
VTPC=X.
请注意,这为您提供了完全相同的等式,用于恢复 PC,但现在用于数据,您可以保留任意数量的 PC。

我对上面的答案有疑问。由于降维后,我们只知道2个主成分,其余的主成分都被舍弃了。投影矩阵V不是方阵(不是完全正交的,是半正交矩阵)。假设 n 是样本数,m 是变量数。X是一个m-经过-n矩阵,V是一个 2×m 矩阵(其行是协方差矩阵的前 2 个特征向量X),PC 是一个 2×n 矩阵。然后我们有 PC = VX。然后VVT是一个单位矩阵,但是VTV不是。因此VTPC=VTVX不能给我们确切的原始矩阵X, 自从VTV不是单位矩阵。