पदानुक्रमित गुच्छन

डेटा खनन और सांख्यिकी में, पदानुक्रमित क्लस्टरिंग (जिसे पदानुक्रमित क्लस्टर विश्लेषण या एचसीए भी कहा जाता है) क्लस्टर विश्लेषण की एक विधि है जो क्लस्टर के पदानुक्रम का निर्माण करना चाहती है। पदानुक्रमित क्लस्टरिंग की रणनीतियाँ आम तौर पर दो श्रेणियों में आती हैं:
 * एग्लोमेरेटिव: यह एक ऊपर से नीचे और नीचे से ऊपर डिज़ाइन है | बॉटम-अप दृष्टिकोण: प्रत्येक अवलोकन अपने स्वयं के क्लस्टर में शुरू होता है, और पदानुक्रम में ऊपर जाने पर क्लस्टर के जोड़े विलय हो जाते हैं।
 * विभाजनकारी: यह एक टॉप-डाउन और बॉटम-अप डिज़ाइन है | टॉप-डाउन दृष्टिकोण: सभी अवलोकन एक क्लस्टर में शुरू होते हैं, और पदानुक्रम में नीचे जाने पर विभाजन पुनरावर्ती रूप से किया जाता है।

सामान्य तौर पर, विलय और विभाजन लालची एल्गोरिथम तरीके से निर्धारित किए जाते हैं। पदानुक्रमित क्लस्टरिंग के परिणाम आमतौर पर डेंड्रोग्राम में प्रस्तुत किए जाते हैं।

पदानुक्रमित क्लस्टरिंग का विशिष्ट लाभ यह है कि दूरी के किसी भी वैध माप का उपयोग किया जा सकता है। वास्तव में, अवलोकनों की स्वयं आवश्यकता नहीं है: जो कुछ भी उपयोग किया जाता है वह एक दूरी मैट्रिक्स है। दूसरी ओर, एकल-लिंकेज दूरी के विशेष मामले को छोड़कर, कोई भी एल्गोरिदम (संपूर्ण खोज को छोड़कर) $$\mathcal{O}(2^n)$$) इष्टतम समाधान खोजने की गारंटी दी जा सकती है।

जटिलता
पदानुक्रमित एग्लोमेरेटिव क्लस्टरिंग (एचएसी) के लिए मानक एल्गोरिदम में समय की जटिलता है $$\mathcal{O}(n^3)$$ और आवश्यकता है $$\Omega(n^2)$$ मेमोरी, जो इसे मध्यम डेटा सेट के लिए भी बहुत धीमी बना देती है। हालाँकि, कुछ विशेष मामलों के लिए, इष्टतम कुशल समूह विधियाँ (जटिलता की) $$\mathcal{O}(n^2)$$) ज्ञात हैं: SLINK सिंगल-लिंकेज क्लस्टरिंग|सिंगल-लिंकेज और CLINK के लिए पूर्ण-लिंकेज क्लस्टरिंग के लिए। ढेर (डेटा संरचना) के साथ, सामान्य केस के रनटाइम को कम किया जा सकता है $$\mathcal{O}(n^2 \log n)$$, उपरोक्त सीमा पर एक सुधार $$\mathcal{O}(n^3)$$, स्मृति आवश्यकताओं को और बढ़ाने की कीमत पर। कई मामलों में, इस दृष्टिकोण का मेमोरी ओवरहेड इसे व्यावहारिक रूप से प्रयोग करने योग्य बनाने के लिए बहुत बड़ा है।

एक विस्तृत खोज के साथ विभाजनकारी क्लस्टरिंग है $$\mathcal{O}(2^n)$$, लेकिन विभाजनों को चुनने के लिए तेज़ अनुमानों का उपयोग करना आम है, जैसे कि k-मीन्स क्लस्टरिंग|k-मीन्स।

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

लिंकेज मानदंड अवलोकनों के बीच जोड़ीवार दूरियों के एक फ़ंक्शन के रूप में अवलोकनों के सेट के बीच की दूरी निर्धारित करता है।

अवलोकन ए और बी के दो सेटों और दूरी डी के बीच आमतौर पर उपयोग किए जाने वाले कुछ लिंकेज मानदंड हैं: इनमें से कुछ को केवल पुनरावर्ती रूप से पुनर्गणना की जा सकती है (WPGMA, WPGMC), कई लोगों के लिए लांस-विलियम्स-समीकरणों के साथ पुनरावर्ती गणना अधिक कुशल है, जबकि अन्य (मिनी-मैक्स, हॉसडॉर्फ, मेडॉइड) के लिए दूरियों की गणना धीमी गति से करनी पड़ती है पूर्ण सूत्र. अन्य लिंकेज मानदंडों में शामिल हैं:


 * संभावना है कि उम्मीदवार समूह एक ही वितरण फ़ंक्शन (वी-लिंकेज) से उत्पन्न होंगे।
 * के-निकटतम-पड़ोसी ग्राफ (ग्राफ डिग्री लिंकेज) पर इन-डिग्री और आउट-डिग्री का उत्पाद।
 * दो समूहों के विलय के बाद कुछ क्लस्टर डिस्क्रिप्टर (यानी, क्लस्टर की गुणवत्ता को मापने के लिए परिभाषित मात्रा) की वृद्धि।

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

पदानुक्रमित क्लस्टरिंग डेंड्रोग्राम होगा:

एक निश्चित ऊंचाई पर पेड़ को काटने से चयनित परिशुद्धता पर विभाजन क्लस्टरिंग मिलेगी। इस उदाहरण में, डेंड्रोग्राम की दूसरी पंक्ति (ऊपर से) के बाद काटने पर क्लस्टर्स {a} {b c} {d e} {f} प्राप्त होंगे। तीसरी पंक्ति के बाद काटने से क्लस्टर {a} {b c} {d e f} प्राप्त होंगे, जो कि एक मोटा क्लस्टरिंग है, जिसमें कम संख्या लेकिन बड़े क्लस्टर होते हैं।

यह विधि समूहों को उत्तरोत्तर विलय करके व्यक्तिगत तत्वों से पदानुक्रम बनाती है। हमारे उदाहरण में, हमारे पास छह तत्व हैं {a} {b} {c} {d} {e} और {f}। पहला कदम यह निर्धारित करना है कि क्लस्टर में किन तत्वों को मर्ज करना है। आमतौर पर, हम चुनी गई दूरी के अनुसार दो निकटतम तत्वों को लेना चाहते हैं।

वैकल्पिक रूप से, कोई इस स्तर पर एक दूरी मैट्रिक्स भी बना सकता है, जहां i-th पंक्ति j-th कॉलम में संख्या i-th और j-th तत्वों के बीच की दूरी है। फिर, जैसे-जैसे क्लस्टरिंग आगे बढ़ती है, पंक्तियों और स्तंभों को विलय कर दिया जाता है क्योंकि क्लस्टर विलय हो जाते हैं और दूरियां अपडेट हो जाती हैं। इस प्रकार की क्लस्टरिंग को लागू करने का यह एक सामान्य तरीका है, और इसमें क्लस्टर के बीच दूरी को कैश करने का लाभ है। सिंगल-लिंकेज क्लस्टरिंग पेज में एक सरल एग्लोमेरेटिव क्लस्टरिंग एल्गोरिदम का वर्णन किया गया है; इसे आसानी से विभिन्न प्रकार के लिंकेज के लिए अनुकूलित किया जा सकता है (नीचे देखें)।

मान लीजिए कि हमने दो निकटतम तत्वों b और c को मर्ज कर दिया है, अब हमारे पास निम्नलिखित क्लस्टर {a}, {b, c}, {d}, {e} और {f} हैं, और हम उन्हें आगे मर्ज करना चाहते हैं। ऐसा करने के लिए, हमें {a} और {b c} के बीच की दूरी लेने की आवश्यकता है, और इसलिए दो समूहों के बीच की दूरी को परिभाषित करें। आमतौर पर दो समूहों के बीच की दूरी $$\mathcal{A}$$ और $$\mathcal{B}$$ निम्नलिखित में से एक है:
 * प्रत्येक क्लस्टर के तत्वों के बीच अधिकतम दूरी (जिसे पूर्ण-लिंकेज क्लस्टरिंग भी कहा जाता है):
 * $$ \max \{\, d(x,y) : x \in \mathcal{A},\, y \in \mathcal{B}\,\}. $$


 * प्रत्येक क्लस्टर के तत्वों के बीच न्यूनतम दूरी (जिसे सिंगल-लिंकेज क्लस्टरिंग भी कहा जाता है):
 * $$ \min \{\, d(x,y) : x \in \mathcal{A},\, y \in \mathcal{B} \,\}. $$


 * प्रत्येक क्लस्टर के तत्वों के बीच की औसत दूरी (जिसे औसत लिंकेज क्लस्टरिंग भी कहा जाता है, उदाहरण के लिए यूपीजीएमए में उपयोग किया जाता है):
 * $$ {1 \over {|\mathcal{A}|\cdot|\mathcal{B}|}}\sum_{x \in \mathcal{A}}\sum_{ y \in \mathcal{B}} d(x,y). $$


 * सभी इंट्रा-क्लस्टर विचरण का योग।
 * विलय किए जा रहे क्लस्टर के लिए विचरण में वृद्धि (वार्ड की विधि)।
 * संभावना है कि उम्मीदवार समूह एक ही वितरण फ़ंक्शन (वी-लिंकेज) से उत्पन्न होंगे।

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

विभाजनकारी क्लस्टरिंग
विभाजनकारी क्लस्टरिंग का मूल सिद्धांत डायना (विभाजन विश्लेषण क्लस्टरिंग) एल्गोरिदम के रूप में प्रकाशित किया गया था। प्रारंभ में, सभी डेटा एक ही क्लस्टर में होते हैं, और सबसे बड़े क्लस्टर को तब तक विभाजित किया जाता है जब तक कि प्रत्येक ऑब्जेक्ट अलग न हो जाए। क्योंकि वहाँ मौजूद हैं $$O(2^n)$$ प्रत्येक क्लस्टर को विभाजित करने के तरीकों के लिए अनुमान की आवश्यकता होती है। डायना अधिकतम औसत असमानता वाली वस्तु को चुनती है और फिर सभी वस्तुओं को इस क्लस्टर में ले जाती है जो शेष की तुलना में नए क्लस्टर के अधिक समान होती हैं।

अनौपचारिक रूप से, डायना विभाजित करने की उतनी प्रक्रिया नहीं है जितनी खोखला करने की है: प्रत्येक पुनरावृत्ति, एक मौजूदा क्लस्टर (उदाहरण के लिए संपूर्ण डेटासेट का प्रारंभिक क्लस्टर) को उसके अंदर एक नया क्लस्टर बनाने के लिए चुना जाता है। ऑब्जेक्ट उत्तरोत्तर इस नेस्टेड क्लस्टर में चले जाते हैं, और मौजूदा क्लस्टर को खोखला कर देते हैं। आख़िरकार, क्लस्टर के अंदर जो कुछ बचा है वह नेस्टेड क्लस्टर है जो वहां विकसित हुआ है, बिना किसी ढीली वस्तु के।

औपचारिक रूप से, डायना निम्नलिखित चरणों में काम करती है:


 * 1) होने देना $$C_0 = \{1\dots n\}$$ सबका समुच्चय हो $$n$$ वस्तु सूचकांक और $$\mathcal{C} = \{C_0\}$$ अब तक बने सभी समूहों का सेट।
 * 2) निम्नलिखित को तब तक दोहराएँ जब तक $$|\mathcal{C}| = n$$:
 * 3) 2 या अधिक वस्तुओं वाला वर्तमान क्लस्टर ढूंढें जिसका व्यास सबसे बड़ा है: $$C_* = \arg\max_{C\in \mathcal{C}} \max_{i_1,i_2\in C} \delta(i_1,i_2)$$
 * 4) इस क्लस्टर में बाकी क्लस्टर से सबसे अधिक असमानता वाली वस्तु ढूंढें: $$i^* = \arg\max_{i\in C_*} \frac{1}{|C_*|-1}\sum_{j\in C_*\setminus\{i\}} \delta(i,j)$$
 * 5) जल्दी से आना $$i^*$$ अपने पुराने क्लस्टर से $$C_*$$ और इसे एक नए स्प्लिंटर समूह में डालें $$C_\textrm{new} = \{i^*\}$$.
 * 6) जब तक कि $$C_*$$ खाली नहीं है, वस्तुओं को माइग्रेट करते रहें $$C_*$$ उन्हें जोड़ने के लिए $$C_\textrm{new}$$. यह चुनने के लिए कि किन वस्तुओं को स्थानांतरित करना है, केवल असमानता पर विचार न करें $$C_*$$, लेकिन स्प्लिंटर समूह से असमानता के लिए भी समायोजित करें: चलो $$i^* = \arg\max_{i\in C} D(i)$$ जहां हम परिभाषित करते हैं $$D(i) = \frac{1}{|C_*|-1}\sum_{j\in C_*\setminus\{i\}} \delta(i,j) - \frac{1}{|C_\textrm{new}|}\sum_{j\in C_\textrm{new}} \delta(i,j)$$, तो या तो पुनरावृति करना बंद कर दें जब $$D(i^*) < 0$$, या पलायन करें $$i^*$$.
 * 7) जोड़ना $$C_\textrm{new}$$ को $$\mathcal{C}$$.

सहजता से, $$D(i)$$ उपरोक्त मापता है कि कोई वस्तु अपने वर्तमान क्लस्टर को कितनी दृढ़ता से छोड़ना चाहती है, लेकिन यह तब क्षीण हो जाता है जब वस्तु स्प्लिंटर समूह में भी फिट नहीं होती है। ऐसी वस्तुएं संभवतः अंततः अपना स्वयं का किरच समूह शुरू कर देंगी।

डायना के डेंड्रोग्राम का निर्माण स्प्लिंटर समूह को देकर किया जा सकता है $$C_\textrm{new}$$ खोखले हुए समूह का बच्चा बनो $$C_*$$ हर बार। इससे एक वृक्ष का निर्माण होता है $$C_0$$ इसकी जड़ के रूप में और $$n$$ इसकी पत्तियों के रूप में अद्वितीय एकल-वस्तु समूह।

खुला स्रोत कार्यान्वयन


* ALGLIB O(n²) मेमोरी और O(n³) रन टाइम के साथ C++ और C# में कई पदानुक्रमित क्लस्टरिंग एल्गोरिदम (सिंगल-लिंक, पूर्ण-लिंक, वार्ड) लागू करता है।
 * ELKI में कई पदानुक्रमित क्लस्टरिंग एल्गोरिदम, विभिन्न लिंकेज रणनीतियाँ शामिल हैं और इसमें कुशल SLINK भी शामिल है, टैग झंकार और एंडरबर्ग एल्गोरिदम, डेंड्रोग्राम से लचीला क्लस्टर निष्कर्षण और विभिन्न अन्य क्लस्टर विश्लेषण एल्गोरिदम।
 * जूलिया (प्रोग्रामिंग भाषा) का Clustering.jl पैकेज के अंदर एक कार्यान्वयन है।
 * GNU ऑक्टेव, MATLAB का GNU एनालॉग फ़ंक्शन लिंकेज में पदानुक्रमित क्लस्टरिंग लागू करता है।
 * ऑरेंज (सॉफ़्टवेयर), एक डेटा माइनिंग सॉफ़्टवेयर सूट, जिसमें इंटरैक्टिव डेंड्रोग्राम विज़ुअलाइज़ेशन के साथ पदानुक्रमित क्लस्टरिंग शामिल है।
 * आर (प्रोग्रामिंग भाषा) में अंतर्निहित फ़ंक्शन हैं और पैकेज जो पदानुक्रमित क्लस्टरिंग के लिए कार्य प्रदान करते हैं।
 * SciPy कुशल SLINK एल्गोरिथ्म सहित, पायथन में पदानुक्रमित क्लस्टरिंग लागू करता है।
 * स्किकिट-लर्न पायथन में पदानुक्रमित क्लस्टरिंग को भी लागू करता है।
 * वेका (मशीन लर्निंग) में पदानुक्रमित क्लस्टर विश्लेषण शामिल है।

वाणिज्यिक कार्यान्वयन

 * मैथवर्क्स में पदानुक्रमित क्लस्टर विश्लेषण शामिल है।
 * एसएएस प्रणाली में PROC क्लस्टर में पदानुक्रमित क्लस्टर विश्लेषण शामिल है।
 * गणित में एक पदानुक्रमित क्लस्टरिंग पैकेज शामिल है।
 * एनसीएसएस (सांख्यिकीय सॉफ्टवेयर) में पदानुक्रमित क्लस्टर विश्लेषण शामिल है।
 * एसपीएसएस में पदानुक्रमित क्लस्टर विश्लेषण शामिल है।
 * Qlucore ओमिक्स एक्सप्लोरर में पदानुक्रमित क्लस्टर विश्लेषण शामिल है।
 * था में पदानुक्रमित क्लस्टर विश्लेषण शामिल है।
 * क्राइमस्टेट में भौगोलिक सूचना प्रणाली के लिए ग्राफिकल आउटपुट के साथ निकटतम पड़ोसी पदानुक्रमित क्लस्टर एल्गोरिदम शामिल है।

यह भी देखें

 * बाइनरी स्पेस विभाजन
 * बाउंडिंग वॉल्यूम पदानुक्रम
 * भूरा क्लस्टरिंग
 * क्लैडिस्टिक्स
 * क्लस्टर विश्लेषण
 * कम्प्यूटेशनल फाइलोजेनेटिक्स
 * क्योर डेटा क्लस्टरिंग एल्गोरिदम
 * दासगुप्ता का उद्देश्य
 * डेंड्रोग्राम
 * डेटा सेट में क्लस्टर की संख्या निर्धारित करना
 * नेटवर्क की श्रेणीबद्ध क्लस्टरिंग
 * स्थानीयता-संवेदनशील हैशिंग
 * निकटतम पड़ोसी की खोज
 * निकटतम-पड़ोसी श्रृंखला एल्गोरिथ्म
 * संख्यात्मक वर्गीकरण
 * प्रकाशिकी एल्गोरिथ्म
 * सांख्यिकीय दूरी
 * सतत समरूपता