我有以下问题:我需要使用以下数据求协方差矩阵的逆矩阵:
x =[255、239、213]
y =[255、240、245]
我用numpy.cov()得到下面的协方差矩阵
cov_matrix = np.cov(np.array([[255.0, 255.0], [239.0, 240.0], [213.0, 245.0]]))
然后,当我使用numpu.linalg.inv()时,我得到这个错误
inv_matrix = np.linalg.inv(cov_matrix)
链接算法错误:奇异矩阵
这怎么可能呢?
1条答案
按热度按时间9rbhqvlz1#
您计算
cov_matrix
的方式错误。假设您对两个不同的变量 x 和 y 有3个观测值:如果你的 x 和 y 是3D空间上的两个观测值,你计算
cov_matrix
的方法是正确的,但是你会得到一个零方差变量(第一个),因为var[(255,255)]=0
,这会产生一个零行列式协方差矩阵,正如@碧玉Row已经说过的那样。