कैसे आर में आयामी कमी करने के लिए


28

मेरे पास एक मैट्रिक्स है जहां (i, j) मुझे बताता है कि मैंने कितनी बार अलग-अलग पेज j देखा। 27K व्यक्ति और 95K पृष्ठ हैं। मैं पृष्ठों के स्थान पर "आयाम" या "पहलुओं" का एक मुट्ठी भर होना चाहूंगा जो उन पृष्ठों के सेट के अनुरूप होगा जो अक्सर एक साथ होते हैं। मेरा अंतिम लक्ष्य तब यह गणना करने में सक्षम होना है कि मैंने कितनी बार उन पृष्ठों को देखा है जो आयाम 1, आयाम 2 आदि में आते हैं।

मैंने मुख्य घटक विश्लेषण और एकल मूल्य अपघटन पर आर प्रलेखन पढ़ा है और इन आदेशों को निष्पादित किया है, लेकिन मैं अनिश्चित हूं कि कैसे आगे बढ़ना है।

मैं इसे करने के लिए आयामी कमी का उपयोग कैसे कर सकता हूं? या यह वास्तव में एक क्लस्टरिंग समस्या है और मुझे इसके बजाय क्लस्टरिंग एल्गोरिदम पर ध्यान देना चाहिए?

किसी भी जानकारी के लिए बहुत धन्यवाद ~ एल

जवाबों:


10

मान लें कि mat_pages [] कॉलम में पृष्ठ हैं (जो आप क्लस्टर करना चाहते हैं) और पंक्तियों में व्यक्ति। आप निम्नलिखित आदेश का उपयोग करके Rby में अलग-अलग डेटा के आधार पर पृष्ठों को क्लस्टर कर सकते हैं:

  pc <- prcomp(x=mat_pages,center=TRUE,scale=TRUE)

लोडिंग मैट्रिक्स डेटा के एसवीडी अपघटन के eigenvectors का मैट्रिक्स है। वे अंकों की गणना में प्रत्येक पृष्ठ का सापेक्ष भार देते हैं। बड़े निरपेक्ष मूल्यों वाले लोडिंग का संगत सिद्धांत घटक के स्कोर को निर्धारित करने में अधिक प्रभाव होता है।

हालांकि, मैं यह भी कहना चाहिए कम आ रहा क्लस्टर पृष्ठों के लिए पीसीए का उपयोग करने का। इसका कारण यह है कि लोडिंग PAGES को अधिक भिन्नता के साथ बड़ा वजन देता है, चाहे यह भिन्नता पृष्ठ सामग्री या किसी अन्य कारण से हो (तकनीकी या व्यक्तिगत भिन्नता) हो। लोडिंग जरूरी समूहों के बीच सच्चे अंतर को नहीं दर्शाती है, जो (शायद) आपकी मुख्य रुचि है। लेकिन, यह गुट वास्तव में इस धारणा के तहत समूह में अंतर को दर्शाता है कि सभी पृष्ठों में एक ही भिन्नता है (मुझे नहीं पता कि यह एक मान्य धारणा है)।

यदि आपके पास एक शक्तिशाली कंप्यूटिंग सुविधाएं हैं (जो आपके डेटा का आकार दिया जा सकता है) - पदानुक्रमित मॉडल का उपयोग करना एक अच्छा विचार हो सकता है। आर में, यह lme4 पैकेज का उपयोग करके किया जा सकता है।


स्कोर होने के बाद आप क्या करते हैं?

यह एक कच्चा सुझाव है और विश्लेषण इस बात पर बहुत निर्भर करता है कि डेटा कैसा दिखता है। इसके अलावा, मुझे लगता है कि यह प्रक्रिया आपके पास मौजूद परिमाण के डेटा को समूहीकृत करने के लिए अत्यधिक प्रभावी होगी।

pc.col <- paste("page", 1:27000, sep=".")

pdf("principle-components.pdf")
plot(pc$x[,1:2]) ## Just look at the 1st two loadings (as you can see the groupings in a plane)
dev.off()

उम्मीद है, यह आपको एक तस्वीर दे सकता है कि डेटा को किस तरह से समूहीकृत किया गया है।

चेतावनी: यह वह नहीं है जो मैं सुझाऊँगा।


मेरी सिफारिश:

जीनोमिक्स में अक्सर इस तरह की समस्याएं उत्पन्न होती हैं। आपके मामले में पृष्ठ जीन से मेल खाते हैं और व्यक्ति रोगियों से मेल खाते हैं (मूल रूप से व्यक्तियों का जीनोमिक्स में वही अर्थ है)

आप डेटा के आधार पर पृष्ठों को क्लस्टर करना चाहते हैं।

आप आर में बहुत सारे संकुल संकुल का उपयोग कर सकते हैं और अन्य उत्तरों में इंगित किए गए हैं। संकुल के साथ एक मूलभूत समस्या यह है कि गुच्छों की संख्या का निर्धारण कैसे किया जाता है। मेरे कुछ पसंदीदा हैं:

  • pvclust (आपको क्लस्टर देता है और प्रत्येक क्लस्टर के लिए एक पी-वैल्यू भी देता है। पी-वैल्यू का उपयोग करके आप सांख्यिकीय रूप से महत्वपूर्ण क्लस्टर निर्धारित कर सकते हैं। समस्या : बहुत अधिक कम्प्यूटेशनल शक्ति की आवश्यकता होती है और मुझे यकीन नहीं है कि यह आपके डेटा के डेटा के लिए काम करेगा। आकार)
  • हॉपक (आपको क्लस्टर की अनुमानित संख्या और क्लस्टर देता है)
  • बायोकॉन्टर में अन्य पैकेज उपलब्ध हैं, कृपया उन्हें कार्य दृश्य में देखें।

तुम भी k- साधन आदि की तरह क्लस्टरिंग algos का उपयोग कर सकते हैं। मुझे यकीन है कि मैंने क्लस्टरिंग के बारे में इस मंच में एक धागा देखा है। जवाब बहुत विस्तृत थे। यह ताल गैली द्वारा पूछा गया था कि क्या मुझे सही याद है।


@suncoolsu: बहुत धन्यवाद! मैं सिर्फ आपकी सलाह का पालन किया है और prcomp भागा है। मैंने लोडिंग मैट्रिक्स को भी संग्रहीत किया। लेकिन मैं इस मैट्रिक्स का उपयोग पृष्ठों को एक साथ समूह में कैसे कर सकता हूं?
लैरीमिकेल्स

नमस्ते लैरीमिकल्स, कृपया मेरा उत्तर नीचे पाएं।
सनकूलू

@suncoolsu: मैं एक ऐसी ही समस्या से निपट रहा हूं, लेकिन मैं उन व्यक्तियों को "क्लस्टर" करना चाहता हूं जिनके पास समान "डायनामिक्स" है (वास्तव में मेरे पास प्रति क्षेत्र बहुत बड़ी संख्या है और मैं उन्हें मॉडल करना चाहता हूं)। मैं सहसंबंध दूरी (1-rho) के साथ पाम का उपयोग करने के बारे में सोच रहा था। क्या यह अनुशंसित तरीका है? क्या आप कृपया पता लगाने के लिए कुछ रास्ते सुझा सकते हैं?
19

@ मुसा .. क्या तुम थोड़े साफ हो सकते हो। मुझे नहीं लगता कि मैं आपके द्वारा बताए गए "गतिशीलता" को समझता हूं। निश्चित रूप से पैम क्लस्टरिंग के लिए ठीक है। लेकिन आप मेरे द्वारा बताए गए R संकुल pvclust और hopach को भी आज़मा सकते हैं। इसके अलावा, SOM (स्व आयोजन नक्शे) क्लस्टरिंग को देखने का एक अलग तरीका है। कृपया अधिक जानकारी के लिए रिप्ले और वेनबल (2002) पुस्तक - एमएएस देखें। पुस्तक क्लस्टरिंग का गहन उपचार प्रस्तुत करती है।
सनकूलू

@suncoolsu: खराब फॉर्म्युलेशन के लिए क्षमा करें! मेरे पास 200 समय हैं जो मैं मॉडल करना चाहता हूं (यानी अनुकरण करना)। मुझे लगता है कि मैं "समान" क्लस्टर कर सकता हूं (यानी समय के साथ समान व्यवहार रखना: सीधे आगे का दृष्टिकोण सहसंबंध का उपयोग करना है) समय सारणी और केवल क्लस्टर समय
सारणी का

4

यह निश्चित रूप से एक क्लस्टरिंग समस्या है। clusterएल्गोरिथम विकल्पों का अवलोकन प्राप्त करने के लिए रु। पैकेज की जाँच करें ( pamऔर agnesशुरू करने के लिए सबसे अच्छा विकल्प हैं; वे क्लस्टरिंग में दो मुख्य धाराओं का प्रतिनिधित्व करते हैं - केन्द्रक और पदानुक्रमित )।
अपने डेटा पर क्लस्टरिंग का उपयोग करने के लिए मुख्य समस्या पृष्ठों के बीच एक अच्छी समानता माप को परिभाषित करना है; सरल एक मैनहट्टन दूरी का उपयोग करने के लिए है; आम दर्शकों की संख्या की गणना करने और इसे सामान्य करने के लिए थोड़ा और जटिल है, आइए बताते हैं, पहले और दूसरे पृष्ठ के दर्शकों की संख्या का मतलब - यह लोकप्रियता प्रभाव को शांत करना चाहिए।

संपादित करें: ठीक है, अब मैंने डेटा का आकार देखा है ... यह संभवतः आर विस्फोट करेगा, क्योंकि इसे एक त्रिकोण मैट्रिक्स की आवश्यकता होती है स्टोर दूरी। संभावित समाधानों के लिए इस रिपोर्ट को देखें।(number of pages)×(number of pages)


मैंने आपके उत्तर को गलत बताया। हालाँकि, क्या आप अंतिम वाक्य में रिपोर्ट के लिए नए लिंक प्रदान कर सकते हैं। पुराना वाला मर चुका है।
शिष्य संख्या

1
मुझे हमेशा के लिए इसके खो जाने का डर है ... आम तौर पर यह क्लस्टरिंग विधियों के कार्यान्वयन के बारे में था जो स्पष्ट रूप से प्रत्येक-से-प्रत्येक समानता मैट्रिक्स का निर्माण नहीं करता है लेकिन मांग पर वस्तुओं की जांच करता है।

1

आयाम की कमी मूल रूप से विशेषताओं (स्तंभों) को क्लस्टरिंग एल्गोरिदम लागू कर रही है। अपने डेटासेट की काफी बड़ी गतिशीलता के कारण, आप व्यक्तियों या पृष्ठों के लिए एक मानचित्र बनाने के लिए SOM (स्व-व्यवस्थित मानचित्र / कोहेनन नेट) का उपयोग करने का प्रयास कर सकते हैं। फिर आप देख सकते हैं कि क्या सार्थक (व्याख्यात्मक) प्रतिमान हैं।


1

यदि आप पीसीए करते हैं, तो मेरी सलाह केवल पहले दो की तुलना में अन्य घटकों को संक्षिप्त रूप से स्क्रीन करने की होगी। एक बार जब आपके पास prcompऑब्जेक्ट pc(suncoolsu की पोस्ट देखें), तो आप plot(pc)विभिन्न प्रमुख घटकों के लिए विचरण की मात्रा को देख सकते हैं। आप आसानी से उनमें से कई (आमतौर पर तीन या चार) के साथ pairs(pc$x[,1:3])या, का उपयोग करके lattice, कल्पना कर सकते हैं splom(pc$x[,1:3])

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.