【发布时间】:2020-07-31 14:51:05
【问题描述】:
我对一些数据进行了 PCA,我想提取 PCA 矩阵。这是我的代码(不包括加载数据):
from sklearn.decomposition import PCA
pca = PCA(n_components=5)
pca_result = pca.fit_transform(recon.data.cpu().numpy())
M = pca.components_
我认为 M 应该是 PCA 矩阵。但是,当我打印 pca_result(前几行)时,我得到了这个:
[-21.08167 , -5.67821 , 0.17554353, -0.732398 ,0.04658243],
[-25.936056 , -6.535223 , 0.6887493 , -0.8394666 ,0.06557591],
[-30.755266 , -6.0098953 , 1.1643354 , -0.82322127,0.07585468]
但是当我打印 np.transpose(np.matmul(M,np.transpose(recon))) 时,我得到了这个:
[-27.78438 , -2.5913327 , 0.87771094, -1.0819707 ,0.1037216 ],
[-32.63887 , -3.4483302 , 1.3909296 , -1.1890743 ,0.12274324],
[-37.45802 , -2.9229708 , 1.8665184 , -1.1728177 ,0.13301012]
我做错了什么,如何获得实际的 PCA 矩阵?谢谢!
【问题讨论】:
-
请更新您的帖子,以明确您所说的“PCA 矩阵”是什么意思——这不是一个标准术语。你是说PC组件吗?转换后的数据?
-
@s.k 是的,官方文档是我检查的第一件事。这就是我最初编写上面代码的方式。我只是不确定为什么这两种方法不一致。
-
@desertnaut 在 PCA 中,您从 n 维空间转到不同的(旋转的)n 维空间。此更改是使用 nxn 矩阵完成的。我不确定如何调用该矩阵。我一直称它为 PCA 矩阵。
标签: python scikit-learn pca