प्रकाशिकी एल्गोरिथ्म

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

मूलभूत विचार
डीबीएससीएएन की तरह, ऑप्टिक्स को दो मापदंडों की आवश्यकता होती है: ε, जो अधिकतम दूरी (रेडियस) का वर्णन करता है जिसे ध्यान में लेने के लिए, और $मिनिप्ट्स,$, जो समूह बनाने के लिए आवश्यक बिंदुओं की संख्या का वर्णन करता है।एक बिंदु p एक मुख्य बिंदु होता है अगर उसके ε-पड़ोस $$N_\varepsilon(p)$$ में न्यूनतम से न्यूनतम $मिनिप्ट्स,$ बिंदु पाए जाते हैं। डीबीएससीएएन के विपरीत, ऑप्टिक्स उन बिंदुओं पर भी विचार करता है जो अधिक सघनता से भरे समूह का हिस्सा हैं, इसलिए प्रत्येक बिंदु को एक मुख्य दूरी सौंपी जाती है जो $मिनिप्ट्स,$वां निकटतम बिंदु के लिए दूरी का वर्णन करती है:
 * $$\text{core-dist}_\mathit{\varepsilon,MinPts}(p)=

\begin{cases} \text{UNDEFINED} & \text{if } |N_\varepsilon(p)| < \mathit{MinPts}\\ \mathit{MinPts}\text{-th smallest distance in } N_\varepsilon(p) & \text{otherwise} \end{cases}$$ एक दूसरे बिंदु $o$ के रीचेबिलिटी-दूरी को एक बिंदु $p$ से या तो $o$ और $p$ के मध्य की दूरी होती है, या $p$ की कोर दूरी होती हैं, जो भी बड़ी होती है।


 * $$\text{reachability-dist}_\mathit{\varepsilon,MinPts}(o,p) =

\begin{cases} \text{UNDEFINED} & \text{if } |N_\varepsilon(p)| < \mathit{MinPts}\\ \max(\text{core-dist}_\mathit{\varepsilon,MinPts}(p), \text{dist}(p,o)) & \text{otherwise} \end{cases}$$ अगर $p$ और $o$ निकटतम पड़ोसी हैं, तो यही $$\varepsilon' < \varepsilon$$ हमें मान लेना चाहिए कि $p$ और $o$ एक ही क्लस्टर का हिस्सा हैं।

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

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

स्यूडोकोड
ऑप्टिक्स का मूल दृष्टिकोण डीबीएससीएएन के समान है, परंतु इसके स्थान पर जाने माने, परंतु अभी तक अप्रसंस्कृत क्लस्टर सदस्यों को एक सेट में रखने की अतिरिक्त, उन्हें प्राथमिकता कतार में रखा जाता है।

function OPTICS(DB, ε, MinPts) is for each point p of DB do

p.reachability-distance = UNDEFINED for each unprocessed point p of DB do N = getNeighbors(p, ε) mark p as processed output p to the ordered list if core-distance(p, ε, MinPts) != UNDEFINED then Seeds = empty priority queue update(N, p, Seeds, ε, MinPts) for each next q in Seeds do N' = getNeighbors(q, ε) mark q as processedरें output q to the ordered list if core-distance(q, ε, MinPts) != UNDEFINED do update(N', q, Seeds, ε, MinPts) अपडेट के दौरान, प्राथमिकता कतार (प्रायोरिटी क्यू) "सीड्स" को $$p$$ और $$q$$ के $$\varepsilon$$-पड़ोस में से अपडेट किया जाता है:

function update(N, p, Seeds, ε, MinPts) is coredist = core-distance(p, ε, MinPts) for each o in N        if o is not processed then new-reach-dist = max(coredist, dist(p,o)) if o.reachability-distance == UNDEFINED then // o is not in Seeds o.reachability-distance = new-reach-dist Seeds.insert(o, new-reach-dist) else              // o in Seeds, check for improvement if new-reach-dist < o.reachability-distance then o.reachability-distance = new-reach-dist Seeds.move-up(o, new-reach-dist)

इसलिए ऑप्टिक्स एक विशेष क्रम में बिंदुओं को आउटपुट करता है, जो उनकी सबसे छोटी रीचैबिलिटी दूरी के साथ एनोटेट होता है (मूल एल्गोरिदम में, कोर दूरी भी निर्यात की जाती है,परंतु आगे की प्रक्रिया के लिए इसकी आवश्यकता नहीं है)।

गुच्छों को निकालना
रीचैबिलिटी-प्लॉट (एक विशेष प्रकार का डेंड्रोग्राम) का उपयोग करके, समूहों की पदानुक्रमित संरचना आसानी से प्राप्त की जा सकती है। यह एक 2डी प्लॉट है, जिसमें एक्स-अक्ष पर ऑप्टिक्स द्वारा संसाधित बिंदुओं का क्रम और वाई-अक्ष पर पहुंच दूरी है। चूंकि समूह से संबंधित बिंदुओं की उनके निकटतम पड़ोसी से कम पहुंच दूरी होती है, इसलिए समूह पहुंच योग्य प्लॉट में घाटियों के रूप में दिखाई देते हैं। घाटी जितनी गहरी होगी, समूह उतना ही सघन होगा।

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

दृश्य निरीक्षण के बाद एक्स-अक्ष पर एक सीमा का चयन करके, वाई-अक्ष पर एक सीमा का चयन करके इस प्लॉट से समूह निकालना मैन्युअल रूप से किया जा सकता है (नतीजा तब डीबीएससीएएन समूहिंग परिणाम के समान होता है) $$\varepsilon$$ और minPts मापदंड; यहां 0.1 का मान अच्छे परिणाम दे सकता है), या विभिन्न एल्गोरिदम द्वारा जो ढलान, घुटने का पता लगाने, या स्थानीय मैक्सिमा द्वारा घाटियों का पता लगाने का प्रयास करते हैं। इस तरह से प्राप्त समूहिंग आमतौर पर पदानुक्रमित समूहिंग होती है, और इसे एकल डीबीएससीएएन रन द्वारा प्राप्त नहीं किया जा सकता है।

जटिलता
डीबीएससीएएन की तरह, ऑप्टिक्स प्रत्येक बिंदु को एक बार संसाधित करता है, और पड़ोसियों के पास एक निश्चित-त्रिज्या निष्पादित करता है$$\varepsilon$$-इस प्रसंस्करण के दौरान पड़ोस की क्वेरी। एक स्थानिक सूचकांक दिया गया है जो पड़ोस की क्वेरी प्रदान करता है $$O(\log n)$$ रनटाइम, का समग्र रनटाइम $$O(n \cdot \log n)$$ प्राप्त होना। मूल ऑप्टिक्स पेपर के लेखक डीबीएससीएएन की तुलना में 1.6 के वास्तविक निरंतर मंदी कारक की रिपोर्ट करते हैं। ध्यान दें कि का मूल्य $$\varepsilon$$ एल्गोरिथम की लागत पर भारी प्रभाव पड़ सकता है, क्योंकि बहुत बड़ा मूल्य पड़ोस की क्वेरी की लागत को रैखिक जटिलता तक बढ़ा सकता है।

विशेष रूप से, चुनना $$\varepsilon > \max_{x,y} d(x,y)$$ (डेटा सेट में अधिकतम दूरी से अधिक) संभव है,परंतु द्विघात जटिलता की ओर ले जाता है, क्योंकि प्रत्येक पड़ोस क्वेरी पूर्ण डेटा सेट लौटाती है। यहां तक ​​कि जब कोई स्थानिक सूचकांक उपलब्ध नहीं होता है, तब भी ढेर के प्रबंधन में अतिरिक्त लागत आती है। इसलिए, $$\varepsilon$$ डेटा सेट के लिए उचित रूप से चुना जाना चाहिए।

एक्सटेंशन
ऑप्टिक्स-ऑफ ऑप्टिक्स पर आधारित एक विसंगति का पता लगाने वाला एल्गोरिदम है। मुख्य उपयोग एक अलग आउटलायर डिटेक्शन विधि का उपयोग करने की तुलना में कम लागत पर ऑप्टिक्स के मौजूदा रन से आउटलेर्स का निष्कर्षण है। स्थानीय बाह्य कारक का बेहतर ज्ञात संस्करण उन्हीं अवधारणाओं पर आधारित है।

डेली-क्लू, डेंसिटी-लिंक-समूहिंग सिंगल-लिंकेज समूहिंग और ऑप्टिक्स के विचारों को जोड़ती है, जिससे $$\varepsilon$$ मापदंड और ऑप्टिक्स की तुलना में प्रदर्शन में सुधार की पेशकश।

हायएससी ऑप्टिक्स पर आधारित एक पदानुक्रमित उप-स्थान समूहिंग (अक्ष-समानांतर) विधि है।

हाईसीओ ऑप्टिक्स पर आधारित एक पदानुक्रमित सहसंबंध समूहिंग एल्गोरिदम है।

व्यंजन HiSC पर एक सुधार है जो अधिक जटिल पदानुक्रम पा सकता है।

फोप्टिक्स यादृच्छिक अनुमानों का उपयोग करके तेज़ कार्यान्वयन है।

एचडीबीएसकैन* डीबीएससीएएन के परिशोधन पर आधारित है, जो समूहों से सीमा-बिंदुओं को बाहर करता है और इस प्रकार हार्टिगन द्वारा घनत्व-स्तरों की मूल परिभाषा का अधिक सख्ती से पालन करता है।

उपलब्धता
OPTICS, OPTICS-OF, DeLi-Clu, HiSC, HiCO और DiSH के जावा कार्यान्वयन ELKI में उपलब्ध हैं (कई दूरी के कार्यों के लिए सूचकांक त्वरण के साथ, और ξ निष्कर्षण विधि का उपयोग करके स्वचालित समूह निष्कर्षण के साथ)। अन्य जावा कार्यान्वयन में वेका (मशीन लर्निंग) एक्सटेंशन (ξ समूह निष्कर्षण के लिए कोई समर्थन नहीं) शामिल है।

GNU R पैकेज dbscan में केवल यूक्लिडियन दूरी के लिए सूचकांक त्वरण के लिए k-d ट्री का उपयोग करके OPTICS (पारंपरिक dbscan-जैसे और ξ समूह निष्कर्षण दोनों के साथ) का C++ कार्यान्वयन शामिल है।

ऑप्टिक्स का पायथन कार्यान्वयन PyClustering लाइब्रेरी और स्किकिट-लर्न में उपलब्ध है। Hडीबीएससीएएन* hdbscan लाइब्रेरी में उपलब्ध है।