Python 为什么numpys的协方差和我的完全不同?
我用以下公式计算协方差:Python 为什么numpys的协方差和我的完全不同?,python,numpy,covariance,Python,Numpy,Covariance,我用以下公式计算协方差: np.dot(X_zero_mean, X_zero_mean.T) / (X_zero_mean.shape[0] -1) 并将其与 np.cov(X_zero_mean.T) 我都将生成的矩阵打印到控制台,并从中创建一个数字,但它们并不相同。为什么?这可能是因为cov避免了一些数值上的错误,就像我上面的公式所发生的那样? 第一个是我的协方差,第二个是numpy cov: 如果没有精确的矩阵,很难判断,但我猜这是因为在将矩阵传递给np.cov之前,需要对矩阵进行转
np.dot(X_zero_mean, X_zero_mean.T) / (X_zero_mean.shape[0] -1)
并将其与
np.cov(X_zero_mean.T)
我都将生成的矩阵打印到控制台,并从中创建一个数字,但它们并不相同。为什么?这可能是因为cov避免了一些数值上的错误,就像我上面的公式所发生的那样?
第一个是我的协方差,第二个是numpy cov:
如果没有精确的矩阵,很难判断,但我猜这是因为在将矩阵传递给
np.cov
之前,需要对矩阵进行转置。这也解释了为什么numpy的结果看起来比你的维度高得多np.cov(X.T)
相当于np.dot(X.T,X)
,而不是np.dot(X,X.T)
如果可能的话,你能分享你的输入矩阵吗?不确定是否有用。。。这是一个38*4080的矩阵。离开变换器,它仍然完全关闭。我使用的公式是错误的吗?请用np.cov(X\u zero\u mean)
更新你的帖子。那么我们也许可以帮助回答这个问题。