【发布时间】:2012-02-04 14:58:09
【问题描述】:
协方差矩阵的特征值应该是实数且非负数,因为协方差矩阵是对称且半正定的。
不过,看看下面的 scipy 实验:
>>> a=np.random.random(5)
>>> b=np.random.random(5)
>>> ab = np.vstack((a,b)).T
>>> C=np.cov(ab)
>>> eig(C)
7.90174997e-01 +0.00000000e+00j,
2.38344473e-17 +6.15983679e-17j,
2.38344473e-17 -6.15983679e-17j,
-1.76100435e-17 +0.00000000e+00j,
5.42658040e-33 +0.00000000e+00j
但是,在 Matlab 中重现上述示例可以正常工作:
a = [0.6271, 0.4314, 0.3453, 0.8073, 0.9739]
b = [0.1924, 0.3680, 0.0568, 0.1831, 0.0176]
C=cov([a;b])
eig(C)
-0.0000
-0.0000
0.0000
0.0000
0.7902
【问题讨论】:
标签: python matlab numpy scipy linear-algebra