सर्कल केंद्रों की एक ज्ञात संख्या का पता लगाना जो एक निश्चित दूरी के भीतर बिंदुओं की संख्या को अधिकतम करता है


10

मेरे पास 2-डी डेटा का एक सेट है जहां मैं एक निर्दिष्ट दूरी ( ) के भीतर अंक की कुल संख्या को अधिकतम करने वाले हलकों ( ) के केंद्रों की संख्या का पता लगाना चाहता हूं ।आरNR

उदाहरण के लिए मेरे पास 10,000 डेटा पॉइंट्स और मैं सर्किलों के केंद्रों को खोजना चाहता हूं जो दायरे में अधिक से अधिक पॉइंट्स कैप्चर कर । 5 केंद्र और 10 का त्रिज्या पहले से दिए गए हैं, डेटा से नहीं।N = 5 R = 10(Xi,Yi)N=5R=10

एक सर्कल के भीतर डेटा बिंदु की उपस्थिति एक द्विआधारी या तो / या प्रस्ताव है। यदि , तो 100 यूनिट दूर बनाम 11 बिंदुओं के मान में कोई अंतर नहीं है, क्योंकि वे दोनों> 10 हैं। इसी तरह सर्कल के भीतर होने के लिए, केंद्र के पास बनाम किनारे के पास होने का कोई अतिरिक्त मूल्य नहीं है। । एक डेटा बिंदु या तो एक सर्कल में या बाहर है।R=10

क्या एक अच्छा एल्गोरिथ्म है जिसका उपयोग इस समस्या को हल करने के लिए किया जा सकता है? ये क्लस्टरिंग तकनीकों से संबंधित हैं, लेकिन औसत दूरी को कम करने के बजाय, "दूरी" फ़ंक्शन 0 है यदि बिंदु बिंदुओं में से किसी भी के भीतर है , और 1 अन्यथा।एनRN

मेरी प्राथमिकता आर में ऐसा करने का एक तरीका खोजना होगा, लेकिन किसी भी दृष्टिकोण की सराहना की जाएगी।


सर्कल ओवरलैप की अनुमति है?
जिज्ञासु_कैट

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

1
सर्किल ओवरलैप की अनुमति है, लेकिन दोनों सर्कल द्वारा कवर किए गए डेटा पॉइंट डबल-काउंट नहीं होंगे। रास्टर डेटासेट पर पड़ोस / फोकल ऑपरेशन के लिए सूचक के लिए धन्यवाद। मैं उन पंक्तियों के साथ कुछ खोजूंगा।
colonel.triq

@Andy W हालांकि फोकल ऑपरेशन स्वाभाविक रूप से एक समाधान में शामिल होगा, यह सवाल GIS समुदाय, IMHO की विशेषज्ञता से परे है, क्योंकि यह वास्तव में एक (बहुत कठिन) अनुकूलन समस्या है। यह एक सीधा-साधा-अधिकतम-का-फोकल-मीन-ग्रिड नहीं है। मैं इसे थोड़ी देर के लिए यहां रखने की सलाह दूंगा, अगर कोई संतोषजनक समाधान नहीं निकलता है, तो प्रोग्रामिंग-उन्मुख साइट पर माइग्रेट करना।
whuber

.... या math.overflow की ओर पलायन? हो सकता है कि इस पर उनकी कुछ अंतर्दृष्टि भी हो।
जिज्ञासु_कैट

जवाबों:


1

यह एक भिन्नता k- साधन समस्या है। केंद्रों की त्रिज्या तब तक मायने नहीं रखती, जब तक कि उनके बराबर मान लिया जाता है।

लिंक:

यह बिंदुओं की उच्चतम संभावना वाले स्थानों पर मंडलियों के केंद्र डाल देगा।

क्लासिक K- साधन प्रक्रिया:

  1. क्लस्टर संख्या 5 पर सेट करें
  2. प्रत्येक बिंदु को एक यादृच्छिक क्लस्टर में रखें
  3. प्रत्येक क्लस्टर के लिए, माध्य स्थिति की गणना करें
  4. प्रत्येक बिंदु के लिए, प्रत्येक नए माध्य स्थिति के लिए दूरी की गणना करें
  5. निकटतम क्लस्टर के साथ सहयोगी सदस्यता
  6. किए जाने तक दोहराएं (पुनरावृत्तियों, स्थिति में परिवर्तन, या अन्य त्रुटि मीट्रिक)

विकल्प:

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

क्यों K- साधन समस्या पर हमला करता है:

  • यह एक गाऊसी मिश्रण मॉडल के फिटिंग के बराबर है जहां घटकों के सहसंयोजक बराबर हैं। मिश्रण घटकों के केंद्र बिंदुओं की उच्चतम उम्मीद के पदों पर स्थित होने जा रहे हैं। निरंतर संभावना के घटता हलकों होने जा रहे हैं। यह EM एल्गोरिथ्म है इसलिए इसमें एसिम्प्टोटिक अभिसरण है। सदस्यता कठिन है, नरम नहीं है।
  • मुझे लगता है कि अगर समान विचरण घटकों के मिश्रण मॉडल की मौलिक धारणा यथोचित "करीब" है, तो इसका मतलब यह है कि यह विधि फिट होने जा रही है। यदि आप केवल बेतरतीब ढंग से अंक वितरित करते हैं, तो यह अच्छी तरह से फिट होने की संभावना कम है।

एक "जीरो इन्फ्लूएंट पॉइसन" का कुछ एनालॉग होना चाहिए जहां एक घटक है जो गैर-गाऊसी है जो समान वितरण को चुनता है।

यदि आप मॉडल को "ट्यून" करना चाहते थे और आश्वस्त थे कि पर्याप्त नमूना अंक थे तो आप k- साधनों के साथ आरंभ कर सकते हैं, और फिर एक संवर्धित k- साधन समायोजक बना सकते हैं जो प्रतियोगिता से सर्कल के दायरे से बाहर के बिंदुओं को हटा देता है। यह आपके पास मौजूद मंडलियों को थोड़ा प्रभावित करेगा, लेकिन हो सकता है कि इससे डेटा में थोड़ा सुधार हुआ हो।


क्या आप कृपया इस बारे में थोड़ा और स्पष्ट हो सकते हैं कि K- साधन इस समस्या को कैसे हल करता है?
whuber

सलाह के लिये धन्यवाद। यह अभी भी मेरे लिए स्पष्ट नहीं है कि K- साधन दृष्टिकोण समस्या को हल करता है? सामान्य (0,1) उत्पन्न डेटा के तीन समूहों के उदाहरण पर विचार करें, जहां केंद्र 5 इकाइयों या तो ऑफसेट हैं। K- साधन केंद्र अधिकतम घनत्व देते हैं। अब "छेद" के साथ कुछ बिंदुओं को काट लें जैसे कि 0.5 से केंद्र के करीब डेटा हटा दिए जाते हैं। K- साधन अभी भी उसी केंद्रों के बारे में दिखाएगा, लेकिन यदि आप N = 3, R = 0.5 के लिए अधिकतम कवरेज प्राप्त करने की कोशिश कर रहे हैं, तो यह स्पष्ट रूप से सही उत्तर नहीं है (क्योंकि डोनट छेद में कोई डेटा नहीं है)। क्या मैं कुछ गलत समझ रहा हूँ?
कर्नल.ट्राइक

जब मेरे पास समय होगा तो बेहतर उत्तर के लिए आपके प्रश्न पर गौर करेंगे। मुझे नकारात्मक वज़न की अनुमति देना पसंद है। कभी-कभी डेटा डोनट्स के साथ-साथ रेडियल रेशनल पॉलीनोमियल को भी संभाल सकता है।
EngrStudent

0

किसी के पास संभवतः एक बेहतर औपचारिक एल्गोरिथ्म है, लेकिन यहां एक जानवर बल दृष्टिकोण (एक हैक?) है। मैं एक 2 डी हिस्टोग्राम की गणना करने के लिए हेक्सागोनल बिनिंग एल्गोरिदम का उपयोग करता हूं। में पसंद hexbinहै R

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

यदि आप सभी शीर्ष डिब्बे पास हैं, तो आपके पास उस क्षेत्र में अपने मंडलियों को स्थानांतरित करने का कोई बेहतर तरीका होगा।

ध्यान दें कि मैं कई कोने के मामलों के बारे में सोच सकता हूं, जहां इस तरह की भोली रणनीति शानदार रूप से विफल हो जाएगी। फिर भी, सिर्फ एक प्रारंभिक बिंदु।

इस बीच, मुझे आशा है कि किसी के पास एक बेहतर एल्गोरिथम है।


1
इस तरह से कुछ समस्या को हल कर सकते हैं, कम से कम लगभग, एक सर्कल के लिए। (यह जीआईएस के साथ फोकल काउंट का उपयोग करके आसानी से किया जा सकता है।) लेकिन यह कई-सर्कल की समस्या को हल नहीं करेगा।
whuber

@ वाउचर: एक सर्कल के लिए हल करने के बारे में क्या फिर उस सर्कल में झूठ बोलने वाले सभी बिंदुओं को छोड़ देना और फिर मूल एल्गोरिथ्म को दोहराना है? क्या आप ऐसी स्थितियों को देख सकते हैं जहां यह विफल हो जाएगा?
जिज्ञासु_कैट

हाँ, आसानी से। (आपका एक "लालची एल्गोरिथ्म है।") पर अंक के साथ एक आयाम में के मामले पर विचार करें । आपका एल्गोरिथ्म पहला सर्कल को कवर और दूसरा कवर : आठ अंकों के में । एक बेहतर समाधान एक सर्कल के साथ और साथ को कवर करता है : नौ अंक। 0 , 1 , 2 , 20 , 21 , 28 , 29 , 30 , 31 , 32 , 39 , 40 28 , 29 , 30 , 31 , 32 0 , 1 , 2 20 , 21 , 28 , 28 29 , 30 30 , 31 , 32 ,R=10,N=20,1,2,20,21,28,29,30,31,32,39,4028,29,30,31,320,1,220,21,28,29,3030,31,32,39,40
whuber

@ शुभकर्ता: सच। तुम सही हो। हालांकि कुछ (कई?) मामलों में इनपुट बिंदुओं की संरचना के आधार पर लालची और गैर-लालची समाधान समान या निकट हो सकते हैं? मुझे नहीं पता।
जिज्ञासु_कैट

@ वाउचर: समस्या ज्यादातर सीमाओं पर लगती है। क्या होगा अगर (कुछ की तरह मैं अपने जवाब में बताया गया) एक चाल खिड़की +Rऔर -Rऔर उसके बाद एक ढेर और उन के बीच चयन पर सभी संभव समाधान डालता है। उदाहरण के 1Dलिए मारने पर अपने उदाहरण में 28,29,30,31,32यह खिड़की तक स्लाइड 18-28और 38-48सभी संभव समाधानों की तलाश करेगा। फिर इन भीतर अधिकतम संयोजन संयोजन के लिए देख सकते हैं। यकीन नहीं है कि अगर मदद मिलेगी? मैं यह देखने की कोशिश कर रहा हूं कि क्या मेरा भोला-भाला एल्गोरिदम किसी को बचाया जा सकता है? :)
जिज्ञासु_कैट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.