2016-01-06 27 views
8

के बीच न्यूनतम दूरी का अनुमान लगाएं मैं लाखों 50-1000 आयामी बिंदुओं के लिए एक agglomerative, नीचे अप क्लस्टरिंग एल्गोरिदम डिजाइन कर रहा हूँ। मेरे एल्गोरिदम के दो हिस्सों में, मुझे अंक के दो समूहों की तुलना करने और दो समूहों के बीच अलगाव का निर्णय लेने की आवश्यकता है। सटीक दूरी पीयू-पी 2 के सभी जोड़े पर ली गई न्यूनतम यूक्लिडियन दूरी है जहां क्लस्टर सी 1 और पी 2 से पी 1 लिया जाता है क्लस्टर सी 2 से लिया जाता है। यदि सी 1 में एक्स अंक हैं और सी 2 में वाई अंक हैं तो इसके लिए एक्स * वाई दूरी माप की आवश्यकता होती है।दो क्लस्टर

मैं वर्तमान में एक तरीका है कि X + Y मापन की आवश्यकता में इस दूरी का अनुमान:

  1. क्लस्टर सी 1 के केन्द्रक Ctr1 का पता लगाएं।
  2. क्लस्टर सी 2 में बिंदु पी 2 खोजें जो सीआरटी 1 के सबसे नज़दीक है। (वाई तुलना।)
  3. पी 1 के निकटतम सी 1 में बिंदु पी 1 खोजें। (एक्स तुलना)।
  4. पी 1 से पी 2 की दूरी क्लस्टर सी 1 और सी 2 के बीच की दूरी का अनुमानित उपाय है। यह वास्तविक मूल्य पर ऊपरी बाध्य है।

समूहों मोटे तौर पर गोलाकार रहे हैं, यह बहुत अच्छी तरह से काम करता है। मेरा टेस्ट डेटा एलीस्पोसाइड गाऊशियन क्लस्टर से बना है, इसलिए यह बहुत अच्छी तरह से काम करता है। हालांकि, अगर क्लस्टर में अजीब, गुना, मोटा आकार होता है, तो इससे खराब परिणाम मिल सकते हैं। मेरे प्रश्न हैं:

क्या कोई एल्गोरिदम है जो एक्स + वाई दूरी माप से भी कम का उपयोग करता है और औसत मामले में अच्छी सटीकता उत्पन्न होती है?

या

वहाँ एक एल्गोरिथ्म है कि (मेरे जैसे) X + Y दूरी माप का उपयोग करता है लेकिन बेहतर खान से सटीकता उद्धार है?

(मैं "95 सी # में इस प्रोग्रामिंग रहा हूँ, लेकिन छद्म कोड में एक एल्गोरिथ्म का एक विवरण या किसी अन्य भाषा ठीक है। कृपया आर या मैटलैब से विशेष पुस्तकालय कार्यों के लिए संदर्भ से बचें। संभाव्य की गारंटी देता है के साथ एक एल्गोरिथ्म % संभावना है कि दूरी कम से कम मूल्य के 5% के भीतर है "स्वीकार्य है)

नोट:। मैं सिर्फ हालांकि नहीं उच्च आयामों के लिए जरूरी इस संबंधित सवाल है, जो एक समान समस्या पर चर्चा करता पाया,। Given two (large) sets of points, how can I efficiently find pairs that are nearest to each other?

नोट: मैं सिर्फ पता चला कि इस bichromatic निकटतम-जोड़ी समस्या कहा जाता है।

संदर्भ के लिए, यहाँ समग्र एल्गोरिथ्म क्लस्टरिंग का एक सिंहावलोकन है:

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

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

  3. तीसरे पास अतिरिक्त एकल लिंकेज ढेर करता है, सब आपस में क्लस्टर दूरी छंटाई और केवल समूहों के संयोजन जब तक समूहों की संख्या समूहों की एक पूर्वनिर्धारित लक्ष्य संख्या के बराबर होती। यह कुछ आउटलाइजर्स को संभालता है, जो केवल बड़े क्लस्टर के साथ आउटलेटर्स को मर्ज करने के लिए पसंद करता है। यदि कई आउटलाइर्स (और आमतौर पर हैं) हैं, तो यह क्लस्टर को लक्ष्य में कम करने में असफल हो सकता है।

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

+1

क्या आपने कुछ ऐसा करने की कोशिश की [that] (https://en.wikipedia.org/wiki/Closest_pair_of_points_problem)? – Borbag

+0

नहीं! यह समस्या के "नाम" को जानने में मदद करता है! धन्यवाद! मैं लेख पढ़ूंगा। लेख में –

+0

दिलचस्प एल्गोरिदम। हालांकि, डी (आयामों की संख्या) पर पुनर्संरचनात्मक विभाजन और एल्गोरिदम की निर्भरता एक समस्या है, क्योंकि मेरे लिए, डी अक्सर के (से समूहों की संख्या) से अधिक होता है। मैं इसे आगे पढ़ूंगा। –

उत्तर

0

मैं एक कागज है कि एक रेखीय समय का वर्णन पाया है, निकटतम bichromatic बिंदु समस्या के लिए यादृच्छिक, एप्सिलॉन-अनुमानित एल्गोरिथ्म:

http://www.cs.umd.edu/~samir/grant/cp.pdf

मैं इसे लागू करें और देखें कि यह काम करता है का प्रयास करेंगे।

अद्यतन - आगे के अध्ययन के बाद, यह स्पष्ट है कि रनटाइम 3^डी के आनुपातिक है, जहां डी आयामों की संख्या है। यह अस्वीकार्य है। कई अन्य दृष्टिकोणों की कोशिश करने के बाद, मैंने निम्नलिखित पर मारा।

  1. एक कुशल लेकिन अपूर्ण विधि का उपयोग करके के क्लस्टर में एक मोटा क्लस्टरिंग करें। यह विधि कुछ बिंदुओं को ठीक से क्लस्टर करेगी, लेकिन बहुत सारे क्लस्टर उत्पन्न करेंगी। बड़े समूहों को बनाने के लिए इन छोटे समूहों को और समेकित किया जाना बाकी है। यह विधि एक ही क्लस्टर में मानी जाने वाली बिंदुओं के बीच ऊपरी बाध्य दूरी डीएमएक्स निर्धारित करेगी।
  2. हिल्बर्ट वक्र क्रम में अंक क्रमबद्ध करें।
  3. एक ही क्लस्टर से पड़ोसी द्वारा तुरंत पहले किए गए सभी बिंदुओं को फेंक दें और सफल हो जाएं।अक्सर नहीं, ये क्लस्टर के आंतरिक बिंदु हैं, सतह बिंदु नहीं।
  4. प्रत्येक बिंदु पी 1 के लिए, आगे की खोज करें, लेकिन उसी क्लस्टर से अगले बिंदु से आगे नहीं।
  5. क्लस्टर सी 1 से बिंदु पी 1 से दूरी को गणना करें, क्लस्टर सी 2 से प्रत्येक विज़िट पॉइंट पी 2 और दूरी को रिकॉर्ड करें यदि यह सी 1 और सी 2 में बिंदुओं के बीच मापा गया किसी भी पूर्व दूरी से छोटा है।
  6. हालांकि, यदि पी 1 की पहले ही सी 2 में किसी बिंदु से तुलना की गई है, तो ऐसा न करें। केवल पी 1 और सी 2 में किसी भी बिंदु के बीच एक तुलना करें।
  7. सभी तुलना किए जाने के बाद, अधिकतर के (के -1) दूरी दर्ज की जाएगी, और कई को छोड़ दिया जाएगा क्योंकि वे डीएमएक्स से बड़े हैं। ये निकटतम बिंदु दूरी अनुमानित हैं।
  8. क्लस्टर के बीच विलय करें यदि वे DMAX से नजदीक हैं।

हिल्बर्ट वक्र क्लस्टर्स के बीच कैसे चल रहा है, इस बारे में कल्पना करना मुश्किल है, इसलिए मेरा अनुमान है कि निकटतम जोड़ों को खोजने के लिए यह दृष्टिकोण कितना कुशल था कि यह के^2 के समान था। हालांकि, मेरी परीक्षण दुकानों के बारे में यह के करीब है। यह के * लॉग (के) के आसपास हो सकता है। आगे अनुसंधान आवश्यक है।

सटीकता के लिए के रूप में:

  • हर दूसरे बात करने के लिए हर बिंदु की तुलना 100% सही है।
  • मेरे प्रश्न में उल्लिखित केंद्र विधि का उपयोग दूरी लगभग 0.1% बहुत अधिक है।
  • इस विधि का उपयोग करने से दूरी 10% अधिक होती है, और औसतन 5% अधिक होती है। हालांकि, सही निकटतम क्लस्टर लगभग हमेशा तीसरे निकटतम क्लस्टर के माध्यम से पहले के रूप में बदल जाता है, इसलिए गुणात्मक रूप से यह अच्छा है। इस विधि का उपयोग कर अंतिम क्लस्टरिंग परिणाम उत्कृष्ट हैं। मेरा अंतिम क्लस्टरिंग एल्गोरिदम डीएनके या डीएनके * लॉग (के) के आनुपातिक प्रतीत होता है।
0

आप एक सूचकांक इस्तेमाल कर सकते हैं। यह बहुत क्लासिक समाधान है।

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

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

+0

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

+0

20+ आयामों पर * दूरी * अब विश्वसनीय नहीं है। यही कारण है कि सूचकांक विफल। आयामी के अभिशाप देखें; यह दूरी बहुत समान होने के बारे में है। हिल्बर्ट वक्र भी लगभग 5 आयामों पर टूट जाएगा। प्रत्येक आयाम को केवल एक बार विभाजित करने के लिए, और गैर-खाली विभाजन हैं, आपको 2^डी ऑब्जेक्ट्स की आवश्यकता है।यदि आप एक अच्छा वक्र चाहते हैं, तो आप कम से कम 2^{4 डी} ऑब्जेक्ट्स रखना चाहते हैं। क्या आपके पास 2^80 ऑब्जेक्ट्स हैं? –

+0

"आयाम के अभिशाप" पर एनी की टिप्पणी के संबंध में, क्या आपके डेटा में इन सभी आयामों के साथ वास्तव में भिन्नता है? पीसीए या एसवीडी क्या इंगित करता है? – nicholas

संबंधित मुद्दे