डीबीएससीएएन: Difference between revisions
From Vigyanwiki
No edit summary |
No edit summary |
||
| Line 1: | Line 1: | ||
{{short description|Density-based data clustering algorithm}} | {{short description|Density-based data clustering algorithm}} | ||
{{Machine learning|Clustering}} | {{Machine learning|Clustering}} | ||
'''शोर के साथ अनुप्रयोगों की घनत्व-आधारित स्थानिक क्लस्टरिंग ( | '''शोर के साथ अनुप्रयोगों की घनत्व-आधारित स्थानिक क्लस्टरिंग (DBSCAN)''' 1996 में [[ मार्टिन एस्तेर | मार्टिन एस्तेर]], [[हंस पीटर क्रिएगेल]], जोर्ग सैंडर और ज़ियाओवेई जू द्वारा प्रस्तावित [[डेटा क्लस्टरिंग]] एल्गोरिदम है।<ref name="dbscan">{{Cite conference | ||
| author1-link = Martin Ester | author1-first = Martin | author1-last = Ester | author2-link = Hans-Peter Kriegel | author2-first = Hans-Peter | author2-last =Kriegel | first3 = Jörg | last3 = Sander | first4 = Xiaowei | last4 = Xu | | author1-link = Martin Ester | author1-first = Martin | author1-last = Ester | author2-link = Hans-Peter Kriegel | author2-first = Hans-Peter | author2-last =Kriegel | first3 = Jörg | last3 = Sander | first4 = Xiaowei | last4 = Xu | ||
| title = A density-based algorithm for discovering clusters in large spatial databases with noise | | title = A density-based algorithm for discovering clusters in large spatial databases with noise | ||
| Line 32: | Line 32: | ||
अब अगर {{mvar|p}} एक मुख्य बिंदु है, फिर यह उन सभी बिंदुओं (कोर या गैर-कोर) के साथ मिलकर एक क्लस्टर बनाता है जो इससे पहुंच योग्य हैं। प्रत्येक क्लस्टर में कम से कम एक मुख्य बिंदु होता है; गैर-कोर बिंदु क्लस्टर का हिस्सा हो सकते हैं, लेकिन वे इसका किनारा बनाते हैं, क्योंकि उनका उपयोग अधिक बिंदुओं तक पहुंचने के लिए नहीं किया जा सकता है। | अब अगर {{mvar|p}} एक मुख्य बिंदु है, फिर यह उन सभी बिंदुओं (कोर या गैर-कोर) के साथ मिलकर एक क्लस्टर बनाता है जो इससे पहुंच योग्य हैं। प्रत्येक क्लस्टर में कम से कम एक मुख्य बिंदु होता है; गैर-कोर बिंदु क्लस्टर का हिस्सा हो सकते हैं, लेकिन वे इसका किनारा बनाते हैं, क्योंकि उनका उपयोग अधिक बिंदुओं तक पहुंचने के लिए नहीं किया जा सकता है। | ||
[[File:DBSCAN-Illustration.svg|thumb|center|400px|इस आरेख में, {{math|{{not a typo|minPts}} {{=}} 4}}. बिंदु A और अन्य लाल बिंदु मुख्य बिंदु हैं, क्योंकि इन बिंदुओं के आसपास का क्षेत्र एक में है {{mvar|ε}} त्रिज्या में कम से कम 4 बिंदु होते हैं (स्वयं बिंदु सहित)। क्योंकि वे सभी एक-दूसरे से पहुंच योग्य हैं, वे एक एकल क्लस्टर बनाते हैं। बिंदु B और C मुख्य बिंदु नहीं हैं, लेकिन A (अन्य मुख्य बिंदुओं के माध्यम से) तक पहुंचा जा सकता है और इस प्रकार क्लस्टर से भी संबंधित हैं। प्वाइंट एन एक शोर बिंदु है जो न तो मुख्य बिंदु है और न ही सीधे पहुंच योग्य है।]]रीचैबिलिटी एक सममित संबंध नहीं है: परिभाषा के अनुसार, केवल मुख्य बिंदु ही गैर-मुख्य बिंदुओं तक पहुंच सकते हैं। विपरीत सत्य नहीं है, इसलिए एक गैर-मुख्य बिंदु तक पहुंचा जा सकता है, लेकिन उससे कुछ भी नहीं पहुंचा जा सकता है। इसलिए, | [[File:DBSCAN-Illustration.svg|thumb|center|400px|इस आरेख में, {{math|{{not a typo|minPts}} {{=}} 4}}. बिंदु A और अन्य लाल बिंदु मुख्य बिंदु हैं, क्योंकि इन बिंदुओं के आसपास का क्षेत्र एक में है {{mvar|ε}} त्रिज्या में कम से कम 4 बिंदु होते हैं (स्वयं बिंदु सहित)। क्योंकि वे सभी एक-दूसरे से पहुंच योग्य हैं, वे एक एकल क्लस्टर बनाते हैं। बिंदु B और C मुख्य बिंदु नहीं हैं, लेकिन A (अन्य मुख्य बिंदुओं के माध्यम से) तक पहुंचा जा सकता है और इस प्रकार क्लस्टर से भी संबंधित हैं। प्वाइंट एन एक शोर बिंदु है जो न तो मुख्य बिंदु है और न ही सीधे पहुंच योग्य है।]]रीचैबिलिटी एक सममित संबंध नहीं है: परिभाषा के अनुसार, केवल मुख्य बिंदु ही गैर-मुख्य बिंदुओं तक पहुंच सकते हैं। विपरीत सत्य नहीं है, इसलिए एक गैर-मुख्य बिंदु तक पहुंचा जा सकता है, लेकिन उससे कुछ भी नहीं पहुंचा जा सकता है। इसलिए, DBSCAN द्वारा पाए गए क्लस्टर की सीमा को औपचारिक रूप से परिभाषित करने के लिए कनेक्टिविटी की एक और धारणा की आवश्यकता है। दो बिंदु {{mvar|p}} और {{mvar|q}} यदि कोई बिंदु है तो घनत्व-जुड़े हुए हैं {{mvar|o}} ऐसे कि दोनों {{mvar|p}} और {{mvar|q}} से पहुंच योग्य हैं {{mvar|o}}. घनत्व-संबद्धता सममित है। | ||
एक क्लस्टर तब दो गुणों को पूरा करता है: | एक क्लस्टर तब दो गुणों को पूरा करता है: | ||
| Line 120: | Line 120: | ||
प्रत्येक डेटा माइनिंग कार्य में मापदंडों की समस्या होती है। प्रत्येक पैरामीटर विशिष्ट तरीकों से एल्गोरिदम को प्रभावित करता है। DBSCAN के लिए, पैरामीटर ε और {{not a typo|minPts}} जरूरत है। पैरामीटर उपयोगकर्ता द्वारा निर्दिष्ट किए जाने चाहिए. आदर्श रूप से, ε का मान हल की जाने वाली समस्या (उदाहरण के लिए भौतिक दूरी) द्वारा दिया जाता है और {{not a typo|minPts}} तो वांछित न्यूनतम क्लस्टर आकार है।{{efn|name=minpts}} | प्रत्येक डेटा माइनिंग कार्य में मापदंडों की समस्या होती है। प्रत्येक पैरामीटर विशिष्ट तरीकों से एल्गोरिदम को प्रभावित करता है। DBSCAN के लिए, पैरामीटर ε और {{not a typo|minPts}} जरूरत है। पैरामीटर उपयोगकर्ता द्वारा निर्दिष्ट किए जाने चाहिए. आदर्श रूप से, ε का मान हल की जाने वाली समस्या (उदाहरण के लिए भौतिक दूरी) द्वारा दिया जाता है और {{not a typo|minPts}} तो वांछित न्यूनतम क्लस्टर आकार है।{{efn|name=minpts}} | ||
* ''MinPts'': सामान्य नियम के रूप में, न्यूनतम{{not a typo|minPts}} को डेटा सेट में आयाम | * ''MinPts'': सामान्य नियम के रूप में, न्यूनतम {{not a typo|minPts}} को डेटा सेट में आयाम ''D'' की संख्या {{not a typo|minPts}} ≥ D + 1 से प्राप्त किया जा सकता है। {{not a typo|minPts}} = 1 का कोई मतलब नहीं है, क्योंकि परिभाषा के अनुसार प्रत्येक बिंदु एक मुख्य बिंदु है। ''minPts'' ≤ 2 के साथ परिणाम एकल लिंक मीट्रिक के साथ [[पदानुक्रमित क्लस्टरिंग]] के समान होगा, ऊंचाई ε पर डेंड्रोग्राम कट के साथ, इसलिए {{not a typo|minPts}} को कम से कम 3 चुना जाना चाहिए। यद्यपि, बड़े मान सामान्यतः शोर वाले डेटा सेट के लिए बेहतर होते हैं और इससे अधिक महत्वपूर्ण क्लस्टर प्राप्त होंगे। अंगूठे के नियम के रूप में, {{not a typo|minPts}} = 2·''dim'' का उपयोग किया जा सकता है,<ref name=":0" />लेकिन बहुत बड़े डेटा के लिए, शोर वाले डेटा के लिए या कई डुप्लिकेट वाले डेटा के लिए बड़े मान चुनना आवश्यक हो सकता है।<ref name="tods" /> | ||
*ε: ε के लिए मान को | *ε: ε के लिए मान को k-दूरी ग्राफ का उपयोग करके चुना जा सकता है, जो कि ''k'' = ''minPts''-1 की दूरी को प्लॉट करता है। {{not a typo|minPts}}-1 निकटतम लघु भागी को सबसे बड़े से सबसे छोटे मूल्य तक ऑर्डर किया गया।<ref name="tods" /> ε के अच्छे मान वे हैं जहां यह प्लॉट एलबो दिखाता है:<ref name="dbscan" /><ref name=":0" /><ref name="tods" /> यदि ε को बहुत छोटा चुना जाता है, तो डेटा का एक बड़ा हिस्सा क्लस्टर नहीं किया जाएगा; जबकि ε के बहुत अधिक मान के लिए, क्लस्टर विलीन हो जाएंगे और अधिकांश ऑब्जेक्ट एक ही क्लस्टर में होंगे। सामान्यतः, ε के छोटे मान बेहतर होते हैं,<ref name="tods" />और सामान्य नियम के अनुसार बिंदुओं का केवल एक छोटा सा अंश ही एक दूसरे से इस दूरी के भीतर होना चाहिए। वैकल्पिक रूप से, ε को चुनने के लिए एक [[प्रकाशिकी एल्गोरिथ्म]] प्लॉट का उपयोग किया जा सकता है,<ref name="tods" /> लेकिन फिर ऑप्टिक्स एल्गोरिदम का उपयोग डेटा को क्लस्टर करने के लिए किया जा सकता है। | ||
* दूरी फलन: दूरी फलन का चुनाव ε की पसंद के साथ मजबूती से जुड़ा हुआ है, और परिणामों पर इसका बड़ा प्रभाव पड़ता है। | * दूरी फलन: दूरी फलन का चुनाव ε की पसंद के साथ मजबूती से जुड़ा हुआ है, और परिणामों पर इसका बड़ा प्रभाव पड़ता है। सामान्यतः, पैरामीटर ε को चुनने से पहले, डेटा सेट के लिए समानता के उचित माप की पहचान करना आवश्यक होगा। इस पैरामीटर के लिए कोई अनुमान नहीं है, लेकिन डेटा सेट के लिए दूरी फलन को उचित रूप से चुना जाना चाहिए। उदाहरण के लिए, भौगोलिक डेटा पर, ग्रेट-सर्कल दूरी प्रायः एक अच्छा विकल्प होती है। | ||
ऑप्टिक्स एल्गोरिदम को DBSCAN के सामान्यीकरण के रूप में देखा जा सकता है जो ε पैरामीटर को अधिकतम मान से बदल देता है जो ज्यादातर प्रदर्शन को प्रभावित करता है। MinPts तब अनिवार्य रूप से खोजने के लिए न्यूनतम क्लस्टर आकार बन जाता है। जबकि एल्गोरिथ्म को DBSCAN की तुलना में पैरामीटराइज़ करना बहुत आसान है, परिणामों का उपयोग करना थोड़ा अधिक कठिन है, क्योंकि यह | ऑप्टिक्स एल्गोरिदम को DBSCAN के सामान्यीकरण के रूप में देखा जा सकता है जो ε पैरामीटर को अधिकतम मान से बदल देता है जो ज्यादातर प्रदर्शन को प्रभावित करता है। ''MinPts'' तब अनिवार्य रूप से खोजने के लिए न्यूनतम क्लस्टर आकार बन जाता है। जबकि एल्गोरिथ्म को DBSCAN की तुलना में पैरामीटराइज़ करना बहुत आसान है, परिणामों का उपयोग करना थोड़ा अधिक कठिन है, क्योंकि यह सामान्यतः DBSCAN द्वारा उत्पादित सरल डेटा विभाजन के अतिरिक्त एक पदानुक्रमित क्लस्टरिंग उत्पन्न करेगा। | ||
हाल ही में, DBSCAN के मूल लेखकों में से एक ने DBSCAN और OPTICS पर दोबारा गौर किया है, और पदानुक्रमित DBSCAN (HDBSCAN*) का एक परिष्कृत संस्करण प्रकाशित किया है।<ref name="hdbscan1">{{cite journal|last1=Campello|first1=Ricardo J. G. B.|last2=Moulavi|first2=Davoud|last3=Zimek|first3=Arthur|author-link3=Arthur Zimek|last4=Sander|first4=Jörg|title=डेटा क्लस्टरिंग, विज़ुअलाइज़ेशन और आउटलायर डिटेक्शन के लिए पदानुक्रमित घनत्व अनुमान|journal=ACM Transactions on Knowledge Discovery from Data|volume=10|issue=1|year=2015|pages=1–51|issn=1556-4681|doi=10.1145/2733381|s2cid=2887636}}</ref> जिसमें अब सीमा बिंदुओं की कोई धारणा नहीं है। इसके | हाल ही में, DBSCAN के मूल लेखकों में से एक ने DBSCAN और OPTICS पर दोबारा गौर किया है, और पदानुक्रमित DBSCAN (HDBSCAN*) का एक परिष्कृत संस्करण प्रकाशित किया है।<ref name="hdbscan1">{{cite journal|last1=Campello|first1=Ricardo J. G. B.|last2=Moulavi|first2=Davoud|last3=Zimek|first3=Arthur|author-link3=Arthur Zimek|last4=Sander|first4=Jörg|title=डेटा क्लस्टरिंग, विज़ुअलाइज़ेशन और आउटलायर डिटेक्शन के लिए पदानुक्रमित घनत्व अनुमान|journal=ACM Transactions on Knowledge Discovery from Data|volume=10|issue=1|year=2015|pages=1–51|issn=1556-4681|doi=10.1145/2733381|s2cid=2887636}}</ref> जिसमें अब सीमा बिंदुओं की कोई धारणा नहीं है। इसके अतिरिक्त, केवल मुख्य बिंदु ही क्लस्टर बनाते हैं। | ||
== [[वर्णक्रमीय क्लस्टरिंग]] से संबंध == | == [[वर्णक्रमीय क्लस्टरिंग]] से संबंध == | ||
DBSCAN का वर्णक्रमीय कार्यान्वयन कनेक्टेड घटक (ग्राफ सिद्धांत) के निर्धारण के साधारण स्थितियॉं में वर्णक्रमीय क्लस्टरिंग से संबंधित है - बिना किनारों के कटे हुए इष्टतम क्लस्टर।<ref>{{Cite conference|last1=Schubert|first1=Erich|last2=Hess|first2=Sibylle|last3=Morik|first3=Katharina|date=2018|title=मैट्रिक्स फैक्टराइजेशन और स्पेक्ट्रल क्लस्टरिंग से डीबीएससीएएन का संबंध|url=http://ceur-ws.org/Vol-2191/paper38.pdf|conference=Lernen, Wissen, Daten, Analysen (LWDA)|pages=330–334|via=CEUR-WS.org}}</ref> यद्यपि, यह <math>O(n^3)</math>कम्प्यूटेशनल रूप से गहन हो सकता है। इसके अतिरिक्त, किसी को गणना करने के लिए आइजन्वेक्टर की संख्या चुननी होगी। प्रदर्शन कारणों से, मूल DBSCAN एल्गोरिथ्म इसके वर्णक्रमीय कार्यान्वयन के लिए बेहतर है। | |||
==एक्सटेंशन== | ==एक्सटेंशन== | ||
सामान्यीकृत | सामान्यीकृत DBSCAN (GDBSCAN)<ref name=":0">{{Cite journal | ||
| first1 = Jörg | last1 = Sander | | first1 = Jörg | last1 = Sander | ||
| first2 = Martin | last2 = Ester | | first2 = Martin | last2 = Ester | ||
| Line 148: | Line 148: | ||
| issue = 2 | | issue = 2 | ||
| s2cid = 445002 | | s2cid = 445002 | ||
}}</ref><ref>{{Cite book | first = Jörg | last = Sander | title = स्थानिक डेटा खनन के लिए सामान्यीकृत घनत्व-आधारित क्लस्टरिंग| isbn=3-89675-469-6 | year=1998 | place = München | publisher = Herbert Utz Verlag }}</ref> उन्हीं लेखकों द्वारा मनमाने लघु भाग और सघन विधेय का सामान्यीकरण है। ε और{{not a typo|minPts}} पैरामीटर को मूल एल्गोरिदम से हटा दिया जाता है और विधेय में ले जाया जाता है। उदाहरण के लिए, बहुभुज डेटा पर, लघु भाग कोई भी प्रतिच्छेदी बहुभुज हो सकता है, जबकि घनत्व विधेय केवल वस्तु गणना के | }}</ref><ref>{{Cite book | first = Jörg | last = Sander | title = स्थानिक डेटा खनन के लिए सामान्यीकृत घनत्व-आधारित क्लस्टरिंग| isbn=3-89675-469-6 | year=1998 | place = München | publisher = Herbert Utz Verlag }}</ref> उन्हीं लेखकों द्वारा मनमाने लघु भाग और सघन विधेय का सामान्यीकरण है। ε और {{not a typo|minPts}} पैरामीटर को मूल एल्गोरिदम से हटा दिया जाता है और विधेय में ले जाया जाता है। उदाहरण के लिए, बहुभुज डेटा पर, लघु भाग कोई भी प्रतिच्छेदी बहुभुज हो सकता है, जबकि घनत्व विधेय केवल वस्तु गणना के अतिरिक्त बहुभुज क्षेत्रों का उपयोग करता है। | ||
DBSCAN एल्गोरिथ्म के विभिन्न विस्तार प्रस्तावित किए गए हैं, जिनमें समानांतरीकरण, पैरामीटर अनुमान और अनिश्चित डेटा के लिए समर्थन के तरीके | DBSCAN एल्गोरिथ्म के विभिन्न विस्तार प्रस्तावित किए गए हैं, जिनमें समानांतरीकरण, पैरामीटर अनुमान और अनिश्चित डेटा के लिए समर्थन के तरीके सम्मिलित हैं। मूल विचार को ऑप्टिक्स एल्गोरिदम द्वारा पदानुक्रमित क्लस्टरिंग तक बढ़ा दिया गया है। DBSCAN का उपयोग PreDeCon और [[SUBCLU]] जैसे सबस्पेस क्लस्टरिंग एल्गोरिदम के हिस्से के रूप में भी किया जाता है। HDBSCAN<ref name="hdbscan1" /> DBSCAN का एक पदानुक्रमित संस्करण है जो ऑप्टिक्स से भी तेज़ है, जिसमें से सबसे प्रमुख समूहों से युक्त एक फ्लैट विभाजन को पदानुक्रम से निकाला जा सकता है।<ref>{{Cite journal | last1 = Campello | first1 = R. J. G. B. | last2 = Moulavi | first2 = D. | last3 = Zimek | first3 = A. |author-link3 = Arthur Zimek | last4 = Sander | first4 = J. | title = पदानुक्रमों से समूहों के अर्ध-पर्यवेक्षित और अपर्यवेक्षित इष्टतम निष्कर्षण के लिए एक रूपरेखा| doi = 10.1007/s10618-013-0311-4 | journal = Data Mining and Knowledge Discovery | volume = 27 | issue = 3 | pages = 344 | year = 2013 | s2cid = 8144686 }}</ref> | ||
| Line 157: | Line 157: | ||
एक ही एल्गोरिथ्म के अलग-अलग कार्यान्वयन में भारी प्रदर्शन अंतर प्रदर्शित किया गया, परीक्षण डेटा सेट पर सबसे तेज़ 1.4 सेकंड में समाप्त हुआ, सबसे धीमा 13803 सेकंड में समाप्त हुआ।<ref>{{cite journal|last1=Kriegel|first1=Hans-Peter|author-link1=Hans-Peter Kriegel|last2=Schubert|first2=Erich|last3=Zimek|first3=Arthur|author-link3 = Arthur Zimek |title=The (black) art of runtime evaluation: Are we comparing algorithms or implementations?|journal=Knowledge and Information Systems|volume=52|issue=2|pages=341|year=2016|issn=0219-1377|doi=10.1007/s10115-016-1004-2|s2cid=40772241}}</ref> अंतरों को कार्यान्वयन की गुणवत्ता, भाषा और कंपाइलर अंतर और त्वरण के लिए अनुक्रमणिका के उपयोग के लिए जिम्मेदार ठहराया जा सकता है। | एक ही एल्गोरिथ्म के अलग-अलग कार्यान्वयन में भारी प्रदर्शन अंतर प्रदर्शित किया गया, परीक्षण डेटा सेट पर सबसे तेज़ 1.4 सेकंड में समाप्त हुआ, सबसे धीमा 13803 सेकंड में समाप्त हुआ।<ref>{{cite journal|last1=Kriegel|first1=Hans-Peter|author-link1=Hans-Peter Kriegel|last2=Schubert|first2=Erich|last3=Zimek|first3=Arthur|author-link3 = Arthur Zimek |title=The (black) art of runtime evaluation: Are we comparing algorithms or implementations?|journal=Knowledge and Information Systems|volume=52|issue=2|pages=341|year=2016|issn=0219-1377|doi=10.1007/s10115-016-1004-2|s2cid=40772241}}</ref> अंतरों को कार्यान्वयन की गुणवत्ता, भाषा और कंपाइलर अंतर और त्वरण के लिए अनुक्रमणिका के उपयोग के लिए जिम्मेदार ठहराया जा सकता है। | ||
* [[अपाचे कॉमन्स]] [http://commons.apache.org/proper/commons-math/ Math] में द्विघात समय में चलने वाले एल्गोरिदम का जावा कार्यान्वयन | * [[अपाचे कॉमन्स]] [http://commons.apache.org/proper/commons-math/ Math] में द्विघात समय में चलने वाले एल्गोरिदम का जावा कार्यान्वयन सम्मिलित है। | ||
* [[ELKI]] DBSCAN के साथ-साथ GDBSCAN और अन्य वेरिएंट का कार्यान्वयन प्रदान करता है। यह कार्यान्वयन उप-द्विघात रनटाइम के लिए विभिन्न सूचकांक संरचनाओं का उपयोग कर सकता है और | * [[ELKI]] DBSCAN के साथ-साथ GDBSCAN और अन्य वेरिएंट का कार्यान्वयन प्रदान करता है। यह कार्यान्वयन उप-द्विघात रनटाइम के लिए विभिन्न सूचकांक संरचनाओं का उपयोग कर सकता है और यादृच्छिक दूरी के कार्यों और यादृच्छिक डेटा प्रकारों का समर्थन करता है, लेकिन यह छोटे डेटा सेट पर निम्न-स्तरीय अनुकूलित (और विशेष) कार्यान्वयन द्वारा बेहतर प्रदर्शन कर सकता है। | ||
* [[MATLAB]] ने R2019a जारी होने के बाद से अपने सांख्यिकी और मशीन लर्निंग टूलबॉक्स में DBSCAN का कार्यान्वयन | * [[MATLAB]] ने R2019a जारी होने के बाद से अपने सांख्यिकी और मशीन लर्निंग टूलबॉक्स में DBSCAN का कार्यान्वयन सम्मिलित किया है। | ||
* [[ mlpack ]] में डुअल-ट्री रेंज सर्च तकनीकों के साथ त्वरित | * [[ mlpack ]] में डुअल-ट्री रेंज सर्च तकनीकों के साथ त्वरित DBSCAN का कार्यान्वयन सम्मिलित है। | ||
* [[PostGIS]] में ST_ClusterDBSCAN | * [[PostGIS]] में ST_ClusterDBSCAN सम्मिलित है - DBSCAN का 2D कार्यान्वयन जो R-ट्री इंडेक्स का उपयोग करता है। कोई भी ज्यामिति प्रकार समर्थित है, उदा. प्वाइंट, लाइनस्ट्रिंग, बहुभुज, आदि। | ||
* [[आर (प्रोग्रामिंग भाषा)]] में पैकेज [https://cran.r-project.org/package=dbscan dbscan] और [https://cran.r-project.org/package=fpc fpc] में DBSCAN का कार्यान्वयन | * [[आर (प्रोग्रामिंग भाषा)]] में पैकेज [https://cran.r-project.org/package=dbscan dbscan] और [https://cran.r-project.org/package=fpc fpc] में DBSCAN का कार्यान्वयन सम्मिलित है। दोनों पैकेज दूरी मैट्रिक्स के माध्यम से यादृच्छिक ढंग से दूरी के कार्यों का समर्थन करते हैं। पैकेज एफपीसी में इंडेक्स समर्थन नहीं है (और इस प्रकार इसमें द्विघात रनटाइम और मेमोरी जटिलता है) और आर दुभाषिया के कारण यह धीमा है। पैकेज dbscan k-d trees (केवल यूक्लिडियन दूरी के लिए) का उपयोग करके तेज़ C++ कार्यान्वयन प्रदान करता है और इसमें DBSCAN*, HDBSCAN*, OPTICS, OPTICSXi और अन्य संबंधित तरीकों का कार्यान्वयन भी सम्मिलित है। | ||
* [[स्किकिट-लर्न]] में | * [[स्किकिट-लर्न]] में यादृच्छिक [[मिन्कोव्स्की दूरी]] के लिए DBSCAN का पायथन कार्यान्वयन सम्मिलित है, जिसे [[के-डी पेड़|k-d trees]] और बॉल ट्री का उपयोग करके त्वरित किया जा सकता है लेकिन जो सबसे खराब स्थिति वाली द्विघात मेमोरी का उपयोग करता है। एक [https://github.com/scikit-learn-contrib/hdbscan scikit-learn में योगदान] HDBSCAN* एल्गोरिदम का कार्यान्वयन प्रदान करता है। | ||
* [https://github.com/annoviko/pyclustering pyclustering] लाइब्रेरी में केवल यूक्लिडियन दूरी के साथ-साथ ऑप्टिक्स एल्गोरिदम के लिए DBSCAN का पायथन और C++ कार्यान्वयन | * [https://github.com/annoviko/pyclustering pyclustering] लाइब्रेरी में केवल यूक्लिडियन दूरी के साथ-साथ ऑप्टिक्स एल्गोरिदम के लिए DBSCAN का पायथन और C++ कार्यान्वयन सम्मिलित है। | ||
* [http://www.philippe-fournier-viger.com/spmf/ SPMF] में केवल यूक्लिडियन दूरी के लिए k-d ट्री समर्थन के साथ DBSCAN एल्गोरिथ्म का कार्यान्वयन | * [http://www.philippe-fournier-viger.com/spmf/ SPMF] में केवल यूक्लिडियन दूरी के लिए k-d ट्री समर्थन के साथ DBSCAN एल्गोरिथ्म का कार्यान्वयन सम्मिलित है। | ||
* वीका (मशीन लर्निंग) में (नवीनतम संस्करणों में एक वैकल्पिक पैकेज के रूप में) | * वीका (मशीन लर्निंग) में (नवीनतम संस्करणों में एक वैकल्पिक पैकेज के रूप में) DBSCAN का एक बुनियादी कार्यान्वयन सम्मिलित है जो द्विघात समय और रैखिक मेमोरी में चलता है। | ||
* [https://docs.rs/linfa-clustering/latest/linfa_clustering/struct.Dbscan.html linfa] में रस्ट (प्रोग्रामिंग भाषा) के लिए DBSCAN का कार्यान्वयन | * [https://docs.rs/linfa-clustering/latest/linfa_clustering/struct.Dbscan.html linfa] में रस्ट (प्रोग्रामिंग भाषा) के लिए DBSCAN का कार्यान्वयन सम्मिलित है। | ||