2013-04-17 5 views
6

मैं numpy.cov(X) मान के रूप में नमूना सहप्रसरण मैट्रिक्स गणना करता है। लेकिन दस्तावेज़ीकरण में कहीं भी यह वास्तव में यह नहीं कहता है, यह सिर्फ "एक कॉन्वर्सिस मैट्रिक्स का अनुमान लगाता है"।numpy cov (covariance) फ़ंक्शन, यह वास्तव में गणना करता है क्या?</p> <pre><code>1/(N-1) * Sum (x_i - m)(x_i - m)^T (where m is the mean) </code></pre> <p>यानी बाहरी उत्पादों का योग:

क्या कोई यह पुष्टि कर सकता है कि यह आंतरिक रूप से क्या करता है? (मुझे पता है कि मैं bias पैरामीटर के साथ फ्रंट को लगातार बदल सकता हूं।)

+0

https://github.com/numpy/numpy/blob/master/numpy/ma/extras.py#L1257 – YXD

उत्तर

3

आप कोई मास्क के साथ, source को देखकर सबसे सामान्य स्थिति में देख सकते हैं, और M नमूने प्रत्येक के साथ N चर, यह (N, N) सहप्रसरण मैट्रिक्स के रूप में गणना रिटर्न:

(x-m) * (x-m).T.conj()/(N - 1) 

कहाँ * का प्रतिनिधित्व करता है मैट्रिक्स उत्पाद [1]

के रूप में मोटे तौर पर लागू किया:

X -= X.mean(axis=0) 
N = X.shape[1] 

fact = float(N - 1) 

return dot(X, X.T.conj())/fact 

यदि आप श्री ई के लिंक के बजाय look here स्रोत की समीक्षा करना चाहते हैं, जब तक कि आप मास्क किए गए सरणी में रूचि न लें। जैसा कि आपने बताया है, the documentation बहुत अच्छा नहीं है।

[1] क्योंकि (x-m) लंबाई M की N स्तंभ वैक्टर है और इस प्रकार (x-m).T के रूप में कई पंक्ति वैक्टर है जो इस मामले में प्रभावी रूप से है (लेकिन वास्तव में नहीं) बाहरी उत्पाद। अंतिम परिणाम सभी बाहरी उत्पादों का योग है। ऑर्डर उलट होने पर * आंतरिक (स्केलर) उत्पाद देगा। लेकिन, तकनीकी रूप से ये दोनों मानक मैट्रिक्स गुणात्मक हैं और वास्तविक बाहरी उत्पाद केवल पंक्ति वेक्टर पर कॉलम वेक्टर का उत्पाद है।

+0

सही, और यह मेरे बाहरी उत्पादों के बराबर है? – Flash

+0

@Andrew हां यह है, और मैंने आपके और दूसरों के लिए अपने उत्तर में इसे स्पष्ट करने की कोशिश की है। – askewchan

0

हां, यही numpy.cov गणना है। एफडब्ल्यूआईडब्ल्यू, मैंने प्रदर्शन की तुलना करने के लिए नमूने (जैसे आपके द्वारा प्रदान किए गए छद्म कोड में) को स्पष्ट रूप से पुन: सक्रिय करने के लिए numpy.cov के आउटपुट की तुलना की है और परिणामी आउटपुट सरणी में अंतर फ़्लोटिंग पॉइंट परिशुद्धता के कारण अपेक्षा करेगा।

संबंधित मुद्दे