यह प्रश्न प्रमुख घटकों की गणना करने के लिए एक कुशल तरीके के बारे में है।
रेखीय पीसीए पर कई ग्रंथों केवेज़ डेटा के एकवचन-मूल्य अपघटन का उपयोग करने की वकालत करते हैं । है यही कारण है, अगर हम डेटा है और चर (अपने को बदलना चाहते कॉलम प्रमुख घटकों द्वारा), हम करते हैं SVD: एक्स = यू एस वी ' (। वर्ग eigenvalues की जड़ों), विलक्षण मूल्यों का मुख्य विकर्ण पर कब्जा एस , दाएँ eigenvectors V अक्षों-घटकों में axes-variables के orthogonal रोटेशन मैट्रिक्स हैं, बाएं eigenvectors U केवल मामलों के लिए V की तरह हैं । हम फिर C = X V = U S के रूप में घटक मानों की गणना कर सकते हैं।
एक और तरीका है चर के पीसीए करने के लिए के अपघटन के माध्यम से है वर्ग मैट्रिक्स (यानी आर हो सकता है सहसंबंध या सहप्रसरण आदि, चर के बीच)। अपघटन eigen-अपघटन किया जा सकता है या एकवचन-मूल्य अपघटन: वर्ग सममित सकारात्मक semidefinite मैट्रिक्स के साथ, वे ही परिणाम प्राप्त होगा आर = वी एल वी ' के विकर्ण रूप में eigenvalues साथ एल , और वी के रूप में पहले वर्णित। घटक मूल्य होंगे ।
अब, मेरा प्रश्न: यदि डेटा एक बड़ा मैट्रिक्स है, और मामलों की संख्या है (जो अक्सर एक मामला है) चर की संख्या से बहुत अधिक है, तो रास्ता (1) वैसे (2) की तुलना में बहुत धीमा होने की उम्मीद है , क्योंकि (1) एक बड़े मैट्रिक्स में काफी महंगा एल्गोरिदम (जैसे एसवीडी) लागू होता है; यह विशाल मैट्रिक्स यू की गणना करता है और संग्रहीत करता है जो हमें वास्तव में हमारे मामले में (चर के पीसीए) की आवश्यकता नहीं है। यदि ऐसा है, तो क्यों इतने सारे टेक्सबुक की वकालत करने लगते हैं या केवल एक ही तरीके (1) का उल्लेख करते हैं? शायद यह है कुशल और मैं कुछ याद कर रहा हूँ?
Joliffe, Principal component analysis, 2nd ed.
वास्तव में, जोलिफ दोनों तरीकों का वर्णन करता है, लेकिन पीसीए पर मुख्य अध्याय में वह सिर्फ 1 के बारे में कहता है, जहां तक मुझे याद है।
R
svd