पदानुक्रमित क्लस्टरिंग

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

सामान्यतः, विलय और विभाजन बहुभक्षक तरीके से निर्धारित होते हैं। पदानुक्रमित समूहन के परिणाम सामान्यतः डेंड्रोग्राम में प्रस्तुत किए जाते हैं।

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

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

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

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

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

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


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

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

पदानुक्रमित समूहन डेंड्रोग्राम होता हैं |

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

यह भी देखें

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