क्या कोई एल्गोरिदम या डेटा संरचनाएं हैं जिन्हें सेट के औसत मूल्य को खोजने की आवश्यकता है?


14

मैं अपनी कक्षा के लिए इस पुस्तक को पढ़ रहा हूं, रैंडमाइज्ड एल्गोरिदम। इस विशेष पुस्तक में, यादृच्छिक चयन का उपयोग करके एक सरणी के माध्यिका को खोजने के लिए समर्पित एक पूरा खंड है, जो एक अधिक कुशल एल्गोरिदम की ओर जाता है। अब, मैं यह जानना चाहता था कि क्या सैद्धांतिक सुधार के अलावा, कंप्यूटर विज्ञान के क्षेत्र में इस एल्गोरिदम के कोई व्यावहारिक अनुप्रयोग हैं। क्या कोई एल्गोरिदम या डेटा संरचनाएं हैं जिन्हें किसी सरणी के माध्य को खोजने की आवश्यकता है?


3
आप क्विकॉर्ट पर एक नज़र डालना चाहते हैं: मध्यिका को धुरी के रूप में चुनकर, इसकी सबसे खराब स्थिति से बचा जा सकता है (ओ (एन ^ 2) के बजाय सबसे खराब स्थिति = ओ (एन लॉग एन)) और पुनरावृत्ति की गहराई होगी छोटा (log2 (n))।
हॉफमैले

1
@hoffmale: लेकिन आपको माध्य खोजने की आवश्यकता नहीं है। यह आपको एक मूल्य खोजने की आवश्यकता है जो कि माध्यिका के करीब है। उदाहरण के लिए, एक धुरी खोजना जो शीर्ष 5% या नीचे 5% के भीतर नहीं है, O (n लॉग एन) की गारंटी देता है।
gnasher729 18

1
@ gnasher729: लेकिन यह पुनरावृत्ति की गहराई को कम नहीं करेगा। दोनों गुण महत्वपूर्ण हैं, उदाहरण के लिए संसाधन-सीमित वास्तविक समय के वातावरण में।
हॉफमेल

@hoffmale, संयोग से, आधार 2 लघुगणक (विशेष रूप से कंप्यूटर वैज्ञानिकों के बीच) के लिए सामान्य संकेतन (lg (n)) के रूप में बस "lg" है।
वाइल्डकार्ड

@ gnasher729 चूंकि विषय स्टोचस्टिक एल्गोरिदम है, यह (= यथोचित करीब) शायद यही है कि ये एल्गोरिदम क्या कर रहे हैं।
कोनराड रुडोल्फ

जवाबों:


17

अगर सैद्धांतिक सुधार होने के अलावा कंप्यूटर विज्ञान के क्षेत्र में इस एल्गोरिथम का कोई व्यावहारिक अनुप्रयोग है

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

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

इसके अलावा, मशीन लर्निंग वह है जहाँ सांख्यिकीय विधियों का भारी उपयोग किया जाता है, उदाहरण के लिए -medians क्लस्टरिंगk


धन्यवाद! यह बेहद मददगार है! किसी भी अन्य एल्गोरिदम या तकनीकों को एक मंझला खोजने की आवश्यकता हो सकती है?
शरण दुग्गीराला

5
हालांकि यह पर्याप्त (+1) सही है, अधिक बार लागू आँकड़ों में नहीं, डेटा माध्यिका को खोजने से पहले छांटा जाएगा, क्योंकि कई या यहाँ तक कि सबसे अधिक संदर्भों में जहाँ मंझला वांछित है, इसलिए कम से कम कुछ अन्य आदेश हैं आंकड़े।
जॉन कोलमैन

1
दिलचस्प। मैं के बारे में सुना है -means क्लस्टरिंग, लेकिन के बारे में नहीं कश्मीर -medians क्लस्टरिंग। kk
svick

13

इमेज प्रोसेसिंग में कुछ प्रकार के शोर को कम करने में मेडियन फ़िल्टरिंग आम है। खासकर नमक और काली मिर्च का शोर। यह छवि के प्रत्येक स्थानीय पड़ोस में प्रत्येक रंग चैनल में माध्य मान को बाहर निकालने और इसके साथ प्रतिस्थापित करने से काम करता है। ये पड़ोस कितने बड़े हो सकते हैं। लोकप्रिय फ़िल्टर आकार (पड़ोस) उदाहरण के लिए 3x3 और 5x5 पिक्सेल हैं।


1
मेडियन न केवल छवियों में शोर पर लागू होता है, बल्कि बहुत सारे सेंसर रीडिंग में शोर होता है, जिनमें से कैमरे सिर्फ एक प्रकार के सेंसर होते हैं। स्कूल की पाठ्यपुस्तकों के साथ काम करने के लिए अच्छी साइनसॉइडल और चौकोर तरंग आकृतियाँ दिखाई देती हैं। वास्तविक दुनिया में स्वच्छ डेटा जैसा कि लगभग कभी नहीं होता है। यदि ऐसा होता है, तो यह लगभग हमेशा होता है क्योंकि किसी और ने डेटा को सुचारू करने से पहले आपको इसे पकड़ लिया। उदाहरण के लिए अधिक विशिष्ट सेंसर रीडिंग डेटा, जिसे आपको "सही" मान लेने की आवश्यकता है: (1, 3, 5, 65, 68, 70, 75, 80, 82, 85, 540, 555)। मैंने इसे और अधिक स्पष्ट करने के लिए डेटा को सॉर्ट किया।
डंक

1
हां आप सही कह रहे हैं लेकिन यह एक बहुत लंबा और उबाऊ जवाब देगा यदि हमने सिग्नल प्रोसेसिंग में सभी छोटी चीजों को लिखा है जहां इसका उपयोग किया जा सकता है।
मैथ्रेडलर

1
इमेज प्रोसेसिंग में मेडियंस का उपयोग प्रति पिक्सेल 5 या तो फोटो के दृश्यों के साथ भी किया जा सकता है, जो कि टेम्पोरल शोर (उर्फ पर्यटकों को देखने से रोकना) से छुटकारा पाने का एक तरीका है
Hagen von Eitzen

@ हेगनवोनइटजन आप सही हैं! दरअसल मैं कुछ दिन पहले ही कुछ ऐसा ही सोच रहा था। आसपास के कई पर्यटक ...
मैथ्रेडलर

10

रैंडमाइज्ड एल्गोरिदम में कम्प्यूटिंग मेडियंस विशेष रूप से महत्वपूर्ण है।

काफी बार, हमारे पास एक अनुमान एल्गोरिथ्म है, जिसमें कम से कम 3 संभावना है341±ϵA34kA(1±ϵ)kA(1ϵ)A(1+ϵ)k

2nn


5

माध्यिकाओं की औसत कुछ अनुप्रयोगों है:

  • O(nlogn)
  • O(n)O(n2)

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

@wchargin आप क्या विकल्प सुझाते हैं? कोई व्यावहारिक क्विकसॉर्ट कार्यान्वयन जिसे मैं कैश-संवेदी धुरी का उपयोग करने के बारे में जानता हूं, क्योंकि ऐसा करने से अत्याचार सबसे खराब स्थिति में होता है। सेमिनल "इंजीनियरिंग एक सॉर्ट फंक्शन" पेपर विकल्पों पर चर्चा करता है, और उनमें से कोई भी कैश-अवेयर (और फिर भी भोले-भाले पिवट सिलेक्शन) नहीं हैं।
कोनराड रुडोल्फ

1
@wchargin… मेरे अपने प्रश्न का उत्तर: जावा 7 एक नई दोहरी-धुरी प्रक्रिया पर स्विच किया गया जिससे मैं अनजान था। इस साज़िश है और हो सकता है अप्रचलित मंझला धुरी एल्गोरिदम प्रस्तुत करना।
कोनराड रुडोल्फ
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.