我正在使用sklearn的PCA来解决物理建模问题。在此问题中,PCA.fit_transform()
和PCA.components_
的返回值具有物理意义。但是,似乎sklearn的PCA自动使输入数据居中,因此PCA.fit_transform()
和PCA.components_
的返回值位于均值居中的空间中。我意识到PCA.inverse_transform
返回原始的非均值输入数据,但这是通过np.dot(X, PCA.components_) + PCA.mean_
完成的,其中X
是PCA.fit_transform()
的返回值。
换句话说,如何通过使用X
将PCA.components_
和X1
更改为PCA.components_1
和PCA.mean_
,以使np.dot(X1,pca.components_1)
返回与PCA.inverse_transform(X)
的值相同吗?
可能有一个简单的线性代数解决方案,但我似乎无法弄清楚。