PCA中的负特征值

时间:2019-04-22 05:54:40

标签: python machine-learning pca eigenvalue dimensionality-reduction

我有一个矩阵x (1000*25),其中包含间隔(-5,5)中的随机浮点数。 nFeatures=25nPoints=1000。我正在使用此代码查找协方差矩阵的特征值,但是却得到了负的特征值。

#centering the data
for i in range(0,nFeatures):
    sum=0
    for j in range(0,nPoints):
        sum+=x[j][i]
    for j in range(0,nPoints):
        x[j][i]-=sum/nPoints

#covariance matrix and its eigenvalues & eigenvectors
c=np.dot(x.T,x)
eValue,eVector=np.linalg.eig(c)
print(eValue)

我得到的输出是:

[ 1.47374029e+02  8.84275505e-13 -8.01150077e-13 -6.77987718e-13
  5.19228948e-13 -4.01775609e-13 -3.55055652e-13  3.55433578e-13
 -2.54817200e-13  2.51137659e-13  2.23836773e-13  1.77611044e-13
  1.57643867e-13 -1.34409360e-13  1.04358065e-13 -9.31186264e-14
 -8.05736392e-14 -5.69664362e-14  4.39721071e-14  3.59268864e-14
 -2.84466680e-14  2.42670536e-14  2.30979465e-15 -7.18313504e-15
 -9.35335475e-15]

现在,由于我的协方差矩阵是一个半正定矩阵,因此特征值不应为负。请帮助我确定我在做什么错。

此外,我读了this帖子,不,我的数据集中没有缺失的值。

0 个答案:

没有答案