क्लस्टरिंग परिणामों की तुलना को समझना


13

मैं समूहों में डेटा वर्गीकृत करने के साथ प्रयोग कर रहा हूं। मैं इस विषय पर काफी नया हूं, और कुछ विश्लेषणों के उत्पादन को समझने की कोशिश कर रहा हूं।

क्विक-आर के उदाहरणों का उपयोग करते हुए , कई Rपैकेज सुझाए गए हैं। मैंने इनमें से दो पैकेज ( फ़ंक्शन fpcका उपयोग करके kmeans, और mclust) का उपयोग करने की कोशिश की है । इस विश्लेषण का एक पहलू जो मुझे समझ में नहीं आता है वह है परिणामों की तुलना।

# comparing 2 cluster solutions
library(fpc)
cluster.stats(d, fit1$cluster, fit2$cluster)

मैंने fpc मैनुअल के प्रासंगिक भागों के माध्यम से पढ़ा है और अभी भी इस बारे में स्पष्ट नहीं हूं कि मुझे क्या लक्ष्य बनाना चाहिए। उदाहरण के लिए, यह दो अलग-अलग क्लस्टरिंग दृष्टिकोणों की तुलना करने का आउटपुट है:

$n
[1] 521

$cluster.number
[1] 4

$cluster.size
[1] 250 119  78  74

$diameter
[1]  5.278162  9.773658 16.460074  7.328020

$average.distance
[1] 1.632656 2.106422 3.461598 2.622574

$median.distance
[1] 1.562625 1.788113 2.763217 2.463826

$separation
[1] 0.2797048 0.3754188 0.2797048 0.3557264

$average.toother
[1] 3.442575 3.929158 4.068230 4.425910

$separation.matrix
          [,1]      [,2]      [,3]      [,4]
[1,] 0.0000000 0.3754188 0.2797048 0.3557264
[2,] 0.3754188 0.0000000 0.6299734 2.9020383
[3,] 0.2797048 0.6299734 0.0000000 0.6803704
[4,] 0.3557264 2.9020383 0.6803704 0.0000000

$average.between
[1] 3.865142

$average.within
[1] 1.894740

$n.between
[1] 91610

$n.within
[1] 43850

$within.cluster.ss
[1] 1785.935

$clus.avg.silwidths
         1          2          3          4 
0.42072895 0.31672350 0.01810699 0.23728253 

$avg.silwidth
[1] 0.3106403

$g2
NULL

$g3
NULL

$pearsongamma
[1] 0.4869491

$dunn
[1] 0.01699292

$entropy
[1] 1.251134

$wb.ratio
[1] 0.4902123

$ch
[1] 178.9074

$corrected.rand
[1] 0.2046704

$vi
[1] 1.56189

यहाँ मेरा प्राथमिक प्रश्न यह समझना बेहतर है कि इस क्लस्टर तुलना के परिणामों की व्याख्या कैसे करें।


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

प्रश्न का पिछला भाग : यदि मैं किसी भी प्रकार की क्लस्टरिंग कर रहा हूं, तो क्या मुझे हमेशा डेटा स्केल करना चाहिए? उदाहरण के लिए, मैं फ़ंक्शन के dist()इनपुट के रूप में अपने स्केल किए गए डेटासेट पर फ़ंक्शन का उपयोग कर रहा हूं cluster.stats(), हालांकि मैं पूरी तरह से नहीं समझता कि क्या चल रहा है। मैं dist() यहाँ के बारे में पढ़ता हूँ और यह बताता है कि:

यह फ़ंक्शन डेटा मैट्रिक्स की पंक्तियों के बीच की दूरी की गणना करने के लिए निर्दिष्ट दूरी माप का उपयोग करके गणना की गई मैट्रिक्स की गणना करता है और वापस करता है।


क्या आप आगे स्पष्टीकरण के लिए देख रहे हैं या आप @ मारीना की प्रतिक्रिया से नाखुश हैं? मुझे लगता है कि यह आपके पहले प्रश्न (2 it) की चिंता करता है। यदि यह मामला है, तो शायद आपको अपना प्रश्न अपडेट करना चाहिए ताकि लोग समझें कि आप इस प्रश्न पर एक इनाम क्यों निर्धारित कर रहे हैं।
chl

@chl मैं इसे स्पष्ट करने के लिए अपडेट करूंगा। मैं बस तुलनात्मक दिशा की व्याख्या पर कुछ मार्गदर्शन की तलाश कर रहा हूं, क्योंकि यह समझ में नहीं आता कि आउटपुट का क्या मतलब है। @ मारीना की प्रतिक्रिया इस पद्धति से जुड़ी कुछ शर्तों को समझाने में बहुत सहायक थी।
celenius

जवाबों:


13

सबसे पहले मैं आपको बता दूं कि मैं यहाँ बिलकुल उपाय नहीं बताने जा रहा हूँ, लेकिन मैं आपको इस बारे में एक जानकारी देने जा रहा हूँ कि तुलना करने के तरीके कितने अच्छे हैं (मान लें कि हम एक ही संख्या के साथ 2 क्लस्टरिंग विधियों की तुलना कर रहे हैं समूहों के)।

  1. उदाहरण के लिए क्लस्टर का व्यास जितना बड़ा होगा, सबसे खराब क्लस्टरिंग, क्योंकि क्लस्टर से संबंधित बिंदु अधिक बिखरे हुए हैं।
  2. प्रत्येक क्लस्टरिंग की औसत दूरी जितनी अधिक होगी, सबसे खराब क्लस्टरिंग विधि। (मान लेते हैं कि औसत दूरी क्लस्टर के प्रत्येक बिंदु से क्लस्टर के केंद्र तक की दूरी है।)

ये दो मीट्रिक हैं जो सबसे अधिक उपयोग किए जाते हैं। ये समझने के लिए इन लिंक की जाँच करें कि वे किस लिए खड़े हैं:

  • अंतर-क्लस्टर दूरी (उच्चतर बेहतर, विभिन्न क्लस्टर सेंट्रोइड के बीच की दूरी का योग है)
  • इंट्रा-क्लस्टर दूरी (कम बेहतर, क्लस्टर सदस्यों के बीच की दूरी का योग क्लस्टर के केंद्र के लिए है)

बेहतर मैट्रिक्स ऊपर समझने के लिए, जाँच इस

फिर आपको पुस्तकालय और उन कार्यों के मैनुअल को पढ़ना चाहिए जिन्हें आप यह समझने के लिए उपयोग कर रहे हैं कि कौन से उपाय इनमें से प्रत्येक का प्रतिनिधित्व करते हैं, या यदि ये शामिल नहीं हैं, तो इसमें शामिल का अर्थ खोजने का प्रयास करें। हालांकि, मैं परेशान नहीं होता और उन लोगों के साथ रहना चाहता हूं जो मैंने यहां कहा था।

चलिए आपके द्वारा किए गए प्रश्नों के साथ चलते हैं:

  1. स्केलिंग डेटा के बारे में: हाँ, आपको हमेशा क्लस्टरिंग के लिए डेटा को स्केल करना चाहिए, अन्यथा अलग-अलग आयामों (वेरिएबल्स) के विभिन्न पैमानों का अलग-अलग प्रभाव होगा कि कैसे डेटा को क्लस्टर किया जाता है, चर में उच्च मान के साथ, अधिक प्रभावी उस चर को यह होगा कि किस प्रकार से क्लस्टरिंग की जाती है, जबकि वास्तव में उन सभी का प्रभाव समान होना चाहिए (जब तक कि किसी विशेष अजीब कारण से आप इसे उस तरह नहीं चाहते हैं)।
  2. दूरी के कार्य एक बिंदु (उदाहरण) से दूसरे तक सभी दूरी की गणना करते हैं। सबसे आम दूरी उपाय यूक्लिडियन है, इसलिए, उदाहरण के लिए, मान लें कि आप उदाहरण 1 से उदाहरण 2 तक की दूरी को मापना चाहते हैं (मान लें कि आपके पास सरलता के लिए केवल 2 उदाहरण हैं)। यह भी मान लें कि प्रत्येक उदाहरण में 3 मान हैं (x1, x2, x3), इसलिए I1=0.3, 0.2, 0.5और I2=0.3, 0.3, 0.4इसलिए I1 और I2 से यूक्लिडियन दूरी होगी: sqrt((0.3-0.2)^2+(0.2-0.3)^2+(0.5-0.4)^2)=0.17इसलिए दूरी मैट्रिक्स का परिणाम होगा:

        i1    i2
    i1  0     0.17
    i2  0.17  0
    

ध्यान दें कि दूरी मैट्रिक्स हमेशा सममित होती है।

यूक्लिडियन दूरी सूत्र केवल वही नहीं है जो मौजूद है। कई अन्य दूरियां हैं जिनका उपयोग इस मैट्रिक्स की गणना के लिए किया जा सकता है। उदाहरण के लिए विकिपीडिया Manhattain दूरी और इसे कैसे गणना करें। यूक्लिडियन डिस्टेंस के लिए विकिपीडिया पृष्ठ के अंत में (जहाँ आप इसके सूत्र की जाँच भी कर सकते हैं) आप जाँच सकते हैं कि कौन सी अन्य दूरी मौजूद है।


आपके बहुत व्यापक उत्तर के लिए धन्यवाद - यह बहुत उपयोगी है।
celenius

मुझे खुशी है कि यह आपके लिए उपयोगी था।
मारीना

@marianasoffer स्टैनफोर्ड पेज के लिंक से काम नहीं चलता। कृपया इसे अपडेट करें या इसे सुलभ बनाएं। धन्यवाद
बजे हरमन टूथ्रोट

7

मुझे लगता है कि क्लस्टरिंग के लिए सबसे अच्छी गुणवत्ता का माप क्लस्टर धारणा है, जैसा कि Seeger द्वारा लेबल और अनलिस्टेड डेटा के साथ सीखने में दिया गया है :

उदाहरण के लिए, मान लें कि X = Rd और "क्लस्टर अनुमान" की वैधता, अर्थात् दो बिंदुओं x, x में एक ही लेबल t होना चाहिए यदि उनके बीच एक पथ X है जो केवल अपेक्षाकृत उच्च P (x) के क्षेत्रों से होकर गुजरता है )।

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

आप आसानी से एक सिंथेटिक डेटासेट का निर्माण कर सकते हैं जहां मिश्रण मॉडल टूट जाते हैं। जैसे यह एक एक बादल के भीतर एक चक्र:।

लंबी कहानी छोटी: मैं एक न्यूनतम तरीके से क्लस्टरिंग एल्गोरिथ्म की गुणवत्ता को मापूंगा। सबसे अच्छा क्लस्टरिंग एल्गोरिदम वह है जो बिंदु के अधिकतम दूरी को उसी क्लस्टर के अपने निकटतम पड़ोसी के लिए कम करता है जबकि यह एक अलग क्लस्टर से अपने निकटतम पड़ोसी को एक बिंदु की न्यूनतम दूरी को अधिकतम करता है।

आप एक गैर-पैरामीटर सूचना थ्योरेटिक क्लस्टरिंग एल्गोरिथ्म में भी रुचि रख सकते हैं ।


मैं मिनिमैक्स दृष्टिकोण का उपयोग करके एक क्लस्टर फिट की जांच कैसे कर सकता हूं? क्लस्टरिंग का मेरा ज्ञान स्तर बहुत बुनियादी है, इसलिए फिलहाल मैं यह समझने की कोशिश कर रहा हूं कि दो अलग-अलग क्लस्टरिंग दृष्टिकोणों की तुलना कैसे करें।
सेलेनियस

क्या आप संलग्न आंकड़े के लिए आर कोड साझा कर सकते हैं?
Andrej

@Andrej मेरा अनुमान एक गाऊसी बादल है ( x<-rnorm(N);rnorm(N)->y) r द्वारा 3 भागों में विभाजित किया गया (उनमें से एक को हटा दिया गया)।

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

@Andrej मैं R का उपयोग नहीं करता हूं (आंकड़े के बजाय एमएल से आ रहा हूं :) लेकिन जो mbq सुझाव देता है वह ठीक लगता है।
बायरज
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.