2

我有 15 个数据集,全部包含 62 个信息点,我试图对它们进行 pca 分析,第一个数据集中的每个点对应于第二个和第三个数据集中的相同点,等等。但是目前我的代码,见下文,产生超过 62 个点而不是 15 个点的平均值,我只在代码中包含了 3 个。为什么当我在数组中交换 x 和 y 时,它会说“我们假设 a 中的数据是用 numrows>numcols 组织的”。我能做些什么来改变这一点?这是我的代码。

import numpy as np
import matplotlib
from matplotlib.mlab import PCA

x=np.zeros((62,3))
a=np.genfromtxt('1.txt').T[2] #list 62numbers
x[:,0]=a
print x[:,0]
b=np.genfromtxt('2.txt').T[2] #list 62numbers
x[:,1]=b
c=np.genfromtxt('3.txt').T[2] #list 62numbers
x[:,2]=c
results=PCA(x)
print results.mu
4

1 回答 1

3

PCA函数接受一个形状为 的数组(M,N),其中M是观察N数,是数据的维数(每个观察的特征数)。错误消息告诉您没有足够的样本来执行 PCA。M < N如果因为在这种情况下您采样不足(协方差矩阵是奇异的),PCA 会失败。

于 2013-08-05T12:06:38.560 回答