我用以下公式计算我的协方差:
np.dot(X_zero_mean, X_zero_mean.T) / (X_zero_mean.shape[0] -1)
并将其与
进行比较np.cov(X_zero_mean.T)
我都将生成的矩阵打印到控制台并从中创建一个数字,但它们不一样。为什么?可能是因为cov避免了一些数字错误,这是我的上述公式发生的吗? 第一个是我的协方差,第二个是numpy cov:
答案 0 :(得分:1)
如果没有你的确切矩阵,很难说清楚,但我猜它是因为你在将矩阵转置到np.cov
之前进行了转置。这也可以解释为什么numpy的结果看起来比它的维度要高得多。 np.cov(X.T)
相当于np.dot(X.T, X)
,而不是np.dot(X, X.T)
。