2012-05-11 11 views
5

क्लारा का k- medoids() फ़ंक्शन दूरी का उपयोग करता है समूहों के रूप में तो मैं इस पैटर्न मिलती है:आर में दूरी के बजाय प्रवृत्ति द्वारा क्लस्टर कैसे करें?

a <- matrix(c(0,1,3,2,0,.32,1,.5,0,.35,1.2,.4,.5,.3,.2,.1,.5,.2,0,-.1), byrow=T, nrow=5) 
cl <- clara(a,2) 
matplot(t(a),type="b", pch=20, col=cl$clustering) 

clustering by clara()

लेकिन मैं एक क्लस्टरिंग विधि है कि प्रत्येक पंक्ति के लिए एक समूह प्रदान करती है पता लगाना चाहते हैं इसकी प्रवृत्ति के मुताबिक, लाइन 1, 2 और 3 एक क्लस्टर और लाइन 4 और 5 के दूसरे हैं।

उत्तर

5

यह प्रश्न stats.stackexchange.com के लिए बेहतर अनुकूल हो सकता है, लेकिन यहां एक समाधान है।

आपका प्रश्न वास्तव में "मैं सही दूरी मीट्रिक कैसे चुनूं?"। इन वैक्टरों के बीच यूक्लिडियन दूरी के बजाय, आप एक दूरी चाहते हैं जो प्रवृत्ति में समानता को मापती है।

a1 <- t(apply(a,1,scale)) 
a2 <- t(apply(a1,1,diff)) 

cl <- clara(a2,2) 
matplot(t(a),type="b", pch=20, col=cl$clustering) 

enter image description here

इसके बजाय एक नया दूरी मीट्रिक परिभाषित करने की, मैं अनिवार्य रूप से एक ही बात डेटा बदलने के द्वारा पूरा किया है:

यहाँ एक विकल्प नहीं है। सबसे पहले प्रत्येक पंक्ति को स्केलिंग करें, ताकि हम सापेक्ष रुझानों की तुलना कर सकें, बिना किसी अंतर के हमें फेंकने के अंतर। इसके बाद, हम डेटा को मतभेदों में परिवर्तित करते हैं।

चेतावनी: यह आवश्यक रूप से सभी "प्रवृत्ति" डेटा के लिए काम करने जा रहा है। विशेष रूप से, लगातार मतभेदों को देखते हुए केवल "प्रवृत्ति" के एक सीमित, सीमित पहलू को पकड़ लिया जाता है। आपको कुछ विचारों को अधिक परिष्कृत मीट्रिक में रखना पड़ सकता है।

2

और अधिक प्रीप्रोकैसिंग करें। किसी भी डेटा खनन के लिए, preprocessing प्रयास का 9 0% है।

उदाहरण के लिए, यदि आप रुझानों से क्लस्टर करना चाहते हैं, तो आपको शायद रुझानों के लिए क्लस्टरिंग लागू करनी चाहिए, न कि कच्चे मूल्यों। तो उदाहरण के लिए, प्रत्येक के 0 और प्रत्येक के मानक विचलन के लिए वक्र को मानकीकृत करें। फिर अंतर को एक मान से अगले में गणना करें, फिर क्लस्टरिंग को इस प्रीप्रोसेस्ड डेटा पर लागू करें!

+0

क्या यह @joran ने प्रस्तावित किया है से अलग है? मुझे अंतर नहीं दिख रहा है – nachocab

+0

सिर्फ अपने उत्तर के माध्यम से पढ़ना: नहीं, यह काफी अलग नहीं है। मैं एक अलग स्केलिंग का सुझाव दे रहा हूँ। हालांकि, मुख्य बिंदु जो मैं इंगित करना चाहता था वह यह है कि यह प्रीप्रोकैसिंग के महत्वपूर्ण चरण से संबंधित है जिसे आपको उपेक्षित नहीं करना चाहिए। यही कारण है कि केडीडी प्रक्रिया के बारे में हमेशा इतना बात होती है: https://en.wikipedia.org/wiki/Data_mining#Process वास्तविक खनन में यह 9 0% प्रयास है, यह वैज्ञानिक परिणामों का 5% अधिक है, जो सबसे अधिक है नए एल्गोरिदम पर ध्यान केंद्रित करें। –

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