2017-03-29 6 views
0

は、私は次の式で、私共分散を計算します。なぜnumpysの共分散は私と全く異なっていますか?

np.dot(X_zero_mean, X_zero_mean.T)/(X_zero_mean.shape[0] -1) 

np.cov(X_zero_mean.T) 

にそれを比較するI両方のコンソールおよびそれらのうちの図を作成するために、結果の行列を印刷し、彼らは同じではありません。どうして? covが数値エラーを避けることができますか?それは私の上記の式で起こっていますか? 最初のものは、私共分散で、もう一つはnumpyののCOVである:それは伝えることは困難ですあなたの正確な行列なし enter image description here

+0

可能であれば入力行列を共有できますか? – lordingtar

+0

有用かどうかわかりません... 38 * 4080の行列です。 – Hakaishin

答えて

1

が、私はnp.covに渡す前に、それはあなたが行列の転置を取っているためだと推測します。それはまた、あなたのものよりもはるかに高い次元のように、なぜnumpyの結果が見えるのかを説明します。 np.cov(X.T)は、np.dot(X.T, X)に相当し、np.dot(X, X.T)ではありません。

+0

トランスポジションを離れたままにすると、まだ完全にオフになっています。私が間違って使っている式はありますか? – Hakaishin

+0

あなたの投稿を 'np.cov(X_zero_mean)'を使って結果を更新してください。それから、この質問に答える手助けができるかもしれません。 –

関連する問題