केवल एक दूरी मैट्रिक्स के साथ पीसीए प्रदर्शन करना


12

मैं एक विशाल डेटासेट को क्लस्टर करना चाहता हूं जिसके लिए मेरे पास केवल जोड़ीदार दूरी है। मैंने के-मेडॉइड एल्गोरिथ्म लागू किया है, लेकिन इसे चलाने में बहुत लंबा समय लग रहा है इसलिए मैं एएए लागू करके अपनी समस्या के आयाम को कम करके शुरू करना चाहूंगा। हालाँकि, इस पद्धति को करने का एकमात्र तरीका मैं covariance मैट्रिक्स का उपयोग कर रहा हूं जो मेरी स्थिति में नहीं है।

क्या PCA लागू करने का एक तरीका है जो केवल युग्म-दूरी को जानता है?


1
तो, आपके पास क्लस्टर करने के लिए इच्छित बिंदुओं के बीच एक बड़ा वर्ग मैट्रिक्स है। (BTW क्या दूरी? यूक्लिडियन?) आपको क्या लगता है कि यह इन बिंदुओं की संख्या के आयामों की संख्या है, और न कि स्वयं अंक (कार्डिनैलिटी) की संख्या, जो क्लस्टरिंग को बाधित करती है?
tnnphns

1
अंकों की संख्या "बहुत बड़ी" नहीं है (कुछ हजारों)। मैं जिस दूरी का उपयोग कर रहा हूं, वह इन बिंदुओं के बीच
पियर्सन

2
लेकिन मेरे सवाल किया गया था: तुम सच में कम करने के लिए चाहते हैं आयामी स्वरूप (और अगर हां, क्यों?) या प्रमुखता (अंकों की संख्या)? क्योंकि आपका प्रश्न अस्पष्ट है
tnnphns

1
@ttnphns: ओह बॉय, बेशक मैंने अपनी पिछली टिप्पणी को गलत समझा। संभावित भ्रम को दूर करने के लिए, अब मैं उस टिप्पणी को हटा दूंगा और जो मैंने यहां कहा था उसे सही शब्दों के साथ दोहराऊंगा: "इस मामले में कार्डिनैलिटी कम करने का मतलब है कि आपकी दूरी मैट्रिक्स को छोटा करना ( को कम करना)। आयाम कम करने का अर्थ है। लोअर रैंक, बिना । पीसीए को बाद में बदलना और वास्तव में पूर्व लक्ष्य के साथ मदद नहीं करता है "। एन एनN×NNN
अमीबा

1
मुझे लगता है कि आपके लिए सबसे आसान तरीका इस तरह के (ए) क्लस्टरिंग विधि या (बी) ऐसे कार्यान्वयन या (सी) ऐसे मजबूत (पर्याप्त रैम) कंप्यूटर का उपयोग करना होगा जो 6000 वस्तुओं को ले जाएगा और वर्गीकृत करेगा (मुझे नहीं पता कि आपका क्यों मेडोइड प्रोग्राम मुश्किल लगता है। 6000 बड़ा है, लेकिन बहुत बड़ा नहीं है।)। कुछ तरीकों (जैसे K- साधनों) के लिए ऑब्जेक्ट X सुविधाओं के डेटा की आवश्यकता होती है। आप मीट्रिक एमडीएस (यदि, फिर से, आपका कंप्यूटर / एमडीएस कार्यक्रम 6000 वस्तुओं को अनुमति देगा) के माध्यम से इस तरह के डेटा को ऑब्जेक्ट दूरी मैट्रिक्स से बना सकते हैं।
ttnphns

जवाबों:


8

अपडेट: मैंने अपने मूल उत्तर को पूरी तरह से हटा दिया, क्योंकि यह यूक्लिडियन दूरी और स्केलर उत्पादों के बीच एक भ्रम पर आधारित था। यह मेरे उत्तर का एक नया संस्करण है। क्षमा याचना।

यदि जोड़ीदार दूरियों से आपका मतलब यूक्लिडियन दूरियों से है, तो हाँ, पीसीए प्रदर्शन करने और प्रमुख घटकों को खोजने का एक तरीका है। मैं निम्नलिखित प्रश्न के उत्तर में एल्गोरिथ्म का वर्णन करता हूं: मुख्य घटक विश्लेषण और बहुआयामी स्केलिंग के बीच अंतर क्या है?

बहुत संक्षेप में, यूक्लिडियन दूरियों के मैट्रिक्स को एक केंद्रित ग्राम मैट्रिक्स में परिवर्तित किया जा सकता है, जिसका उपयोग सीधे पीसीए को ईगेंडेकम्पोजीशन के माध्यम से करने के लिए किया जा सकता है। इस प्रक्रिया को [शास्त्रीय] बहुआयामी स्केलिंग (एमडीएस) के रूप में जाना जाता है ।

यदि आपकी जोड़ीदार दूरीएं यूक्लिडियन नहीं हैं, तो आप पीसीए का प्रदर्शन नहीं कर सकते, लेकिन फिर भी एमडीएस कर सकते हैं, जो अब पीसीए के समकक्ष नहीं है। हालांकि, इस स्थिति में एमडीएस आपके उद्देश्यों के लिए और भी बेहतर होने की संभावना है।


मैं जिस दूरी का उपयोग कर रहा हूं वह एक सहसंबंध (पियर्सन सहसंबंध) है और इसलिए यूक्लिडियन दूरी नहीं है। क्या वह भी इसी तरह काम करेगा?
बिगट्री

1
@bigTree: यदि यह यूक्लिडियन दूरी नहीं है, तो कोई तरीका नहीं है जिससे आप पीसीए चला सकते हैं। हालांकि, आप बहुआयामी स्केलिंग का उपयोग कर सकते हैं जो एक आयामी कमी तकनीक है जो जोड़ीदार दूरी के मैट्रिक्स का सटीक रूप से उपयोग करता है (यह अधिकतम दूरी हो सकती है)। एक अन्य नोट: मूल डेटा-पॉइंट्स (जो आपके पास नहीं है) के बारे में कुछ मान्यताओं के तहत सहसंबंधों को यूक्लिडियन दूरियों में बदला जा सकता है। मान्यताएं हैं: (1) शून्य का मतलब, (2) स्थिर होना, जैसे इकाई, लंबाई। क्या यह आपके डेटा के लिए किसी भी तरह से सही है?
अमीबा

इनमें से कोई भी सच या मेरा डेटा नहीं है, लेकिन मैं एमडीएस को धन्यवाद देने की कोशिश
करूंगा

1
क्या आप कर्नेल पीसीए का उपयोग नहीं कर सकते? मुझे लगता है कि केवल जोड़ीदार उत्पादों की आवश्यकता होगी, लेकिन मुझे इस मुद्दे के बारे में ज्यादा जानकारी नहीं है, इसलिए मुझे नहीं पता कि यह समझ में आता है
rep_ho

4

एक दूरी मैट्रिक्स के साथ पीसीए मौजूद है, और इसे मल्टी-आयामी स्केलिंग (एमडीएस) कहा जाता है। आप विकिपीडिया पर या इस पुस्तक में अधिक जान सकते हैं ।

आप इसे Rmds फ़ंक्शन के साथ कर सकते हैं cmdscale। एक नमूने के लिए x, आप इसे देख सकते हैं prcomp(x)और cmdscale(dist(x))एक ही परिणाम दे सकते हैं (जहां prcompपीसीए करता है और distकेवल एक्स के तत्वों के बीच यूक्लिडियन दूरी की गणना करता है)


3

यह एक समस्या की तरह लग रहा है कि वर्णक्रमीय क्लस्टरिंग को लागू किया जा सकता है। चूंकि आपके पास जोड़ीदार दूरी मैट्रिक्स है, इसलिए आप पूरी तरह से जुड़े हुए ग्राफ़ को परिभाषित कर सकते हैं जहाँ प्रत्येक नोड में एन कनेक्शन हैं, ग्राफ़ में हर दूसरे नोड से इसकी दूरी के अनुरूप। इस से, आप ग्राफ लैपेलियन की गणना कर सकते हैं (यदि यह डरावना लगता है, तो चिंता न करें - यह एक आसान संगणना है) और फिर सबसे छोटे के आइजेनवेक्टर लेंeigenvalues ​​(यह वह जगह है जहां यह पीसीए से अलग है)। यदि आप 3 eigenvectors लेते हैं, उदाहरण के लिए, तो आपके पास एक Nx3 मैट्रिक्स होगा। इस जगह में, कुछ साफ-सुथरे ग्राफ सिद्धांत के कारण अंक (उम्मीद) को अच्छी तरह से अलग किया जाना चाहिए जो बताता है कि यह समूहों के बीच प्रवाह (या दूरी, इस मामले में) को अधिकतम करने के लिए एक इष्टतम कटौती है। वहां से, आप 3-स्पेस में क्लस्टर के लिए k-mean या समान एल्गोरिथ्म का उपयोग कर सकते हैं। मैं अधिक जानकारी के लिए इस भयानक walkthrough की जाँच करने की सलाह देता हूं:

http://arxiv.org/abs/0711.0189


0

जोड़ीदार दूरी भी सह-विचरण मैट्रिक्स की तरह एक वर्ग मैट्रिक्स बनाती है। पीसीए सिर्फ एसवीडी ( http://en.wikipedia.org/wiki/Singular_value_decomposition ) सह-प्रसरण मैट्रिक्स पर लागू होता है। आपको अभी भी अपने डेटा पर SVD का उपयोग करके आयाम में कमी करने में सक्षम होना चाहिए। मुझे यकीन नहीं है कि अपने आउटपुट की व्याख्या कैसे करें लेकिन यह निश्चित रूप से कोशिश करने के लिए कुछ है। आप k-mean या hierarchical क्लस्टरिंग जैसे क्लस्टरिंग विधियों का उपयोग कर सकते हैं। अन्य आयाम कटौती तकनीकों जैसे कि बहुआयामी स्केलिंग पर भी एक नज़र डालें। क्या आप अपने समूहों से बाहर निकलने की कोशिश कर रहे हैं?


एंड्रयू कैसिडी का जवाब वास्तव में मान्य है। यदि आपकी दूरी को मापने के लिए पीयरसन सहसंबंध है, तो आप वास्तव में एक कोविरियन मैट्रिक्स होने से "बहुत दूर" एक मानकीकरण कारक हैं। इस प्रकार, SVD को लागू करना मूल रूप से PCA करने जैसा ही है।
मैथ्यू एंथनी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.