想要解释迭代 PCA 算法中的变量

计算科学 线性代数 Python C++ 投影
2021-12-23 16:30:29

我一直在尝试在本文中实现 CPU GS-PCA 算法。

代码从第 28 页开始

我有一个程序用 python 编写了一个脚本,它给出了与论文中的 C++ 程序相同的输出。

我的功能看起来像这样

[T, P, R, L, U] = IterativePCA(theData, numDimensions, 10000, 1.0e-7)

theData带有数据向量的大矩阵在哪里

numDimensions是 PCA 算法投影到的维度数

我正在使用 10000 次最大迭代

容错率为 1.0e-7

但我还有一个问题

有哪些矩阵[T, P, R, L, U]

我如何从他们那里得到投射到 PCA 基础上的新数据?

我可以使用计算这些数据

from sklearn.decomposition import PCA

PCA(n_components=n_numDimensions).fit_transform(theData)

但我希望能够使用论文中的迭代方法来做到这一点

1个回答

论文中的第 2.1 节解释了 PCA 采用向量列表

X=[X(0)|X(1)|...|X(N1)]

并将其映射到

T=[T(0)|T(1)|...|T(N1)]

所以我假设T包含新坐标系中的数据。

然后解释说

X=TPT

所以我收集到P包含主要成分。

我现在正在使用已发布的源代码(而不是预印本)