如何使用Python通过PCA获得第一个主要组件?

时间:2013-07-29 05:48:03

标签: python pca

我有一组以n*2矩阵形式呈现的2D矢量。

我希望得到第一个主成分,即指示方差最大的方向的矢量。

我在莱斯大学找到了a rather detailed documentation

基于此,我导入了数据并完成了以下操作:

import numpy as np

dataMatrix = np.array(aListOfLists)   # Convert a list-of-lists into a numpy array.  aListOfLists is the data points in a regular list-of-lists type matrix.
myPCA = PCA(dataMatrix)   # make a new PCA object from a numpy array object

那么我如何获得作为第一主成分的3D矢量?

3 个答案:

答案 0 :(得分:1)

PCA仅从2d数据中提供2d vecs。

查看维基百科PCA中的图片:
从这样的点云(dataMatrix)开始,并使用matplotlib.mlab.PCA
myPCA.Wt[0]是第一台PC,图中的长PC。

答案 1 :(得分:0)

答案 2 :(得分:0)

您的示例中使用matplotlib.mlab.PCA并不明显,但如果是,documentation表示返回的对象具有属性 Wt ,即“用于将numdims点或数组投影到PCA空间中的权重向量“。

PCA以降序返回特征值(您可以通过查看返回对象的 fracs 属性来判断)。所以第一个主成分(第一个特征向量)将是Wt的第一行。

如@denis所述,由于您的输入数据是2D,因此您的特征向量将是2D(而不是3D)。