एक सेट के एक नमूने का उपयोग करके कई सेटों के एक चौराहे के आकार का अनुमान लगाना


10

मैं एक एल्गोरिथ्म पर काम कर रहा हूं जिसमें कम से कम 2 सेटों के चौराहों द्वारा उत्पन्न सेट के आकार की गणना करने की आवश्यकता है। अधिक विशेष रूप से:

z=|A0An|

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

z=|(A0A1)(A0An)|

यहां तक ​​कि यह रणनीति मुझे चलाने के लिए कुछ बहुत बड़े प्रश्नों के साथ छोड़ देती है, बाद सेकभी-कभी बड़े हो सकते हैं। उस से निपटने के लिए मेरा विचार का एक यादृच्छिक नमूना ले रहा है और इसे एक उचित अनुमान पर वापस एक्सट्रपलेशन करने से पहले बाकी सेट्स के साथ इंटरसेक्ट कर रहा है । मेरा सवाल है: नमूने के बारे में जाने का सबसे अच्छा तरीका क्या है और फिर मूल्य पर वापस जाने के लिए एक्सट्रपलेशन करना है, अगर पूरी तरह से सही नहीं है, तो एक पूर्वानुमान योग्य त्रुटि सीमा है?|A0|A0zz


यहाँ मैंने जो अभी तक कोशिश की है (छद्म कोड में, की तरह):

sample_threshold := 10000
factor := 1
if (len(A0) > sample_treshold) {
    factor = sample_threshold / len(A0)
}

// Take a random sample of size 10000 from A0

// Intersect all the other sets with the A0 sample, then with each other
working_set := A0
for i, a := range A {
    a = intersect(A0, a)
    working_set = intersect(working_set, a)
}

z := len(working_set) * (1 / factor)

यह कोड काम करता है, लेकिन लगातार zउच्चतर अनुमान लगाते हुए कम नमूने के आकार के साथ लगातार overestimate लगता है । इसके अतिरिक्त, मुझे यकीन नहीं है कि यह दो से अधिक सेट के साथ स्केल कैसे होगा।

मुझे उम्मीद है कि यह प्रश्न समझ में आता है, मुझे बताएं कि क्या मैं आगे कुछ भी स्पष्ट कर सकता हूं। इसके अलावा, यदि यह प्रश्न विषय से दूर है या कहीं और है, तो कृपया मुझे बताएं और मुझे इसे स्थानांतरित करने में खुशी होगी।


प्रति बिल की टिप्पणी , मैं नमूने का आकार बनाम त्रुटि को दिखाने के लिए कुछ त्वरित परीक्षण के भाग गया। प्रत्येक नमूना आकार की बाल्टी को 20 बार चलाया गया था, और जैसा कि आप देख सकते हैं कि एक बहुत स्पष्ट प्रवृत्ति है:

भूखंड


मुझे लगता है कि प्रतिस्थापन के बिना सरल यादृच्छिक नमूना काम करना चाहिए। मैं चकित हूँ कि आप कम कर रहे हैं। ऐसा लगता है कि यह एक यादृच्छिक नमूने से नमूना माध्य का उपयोग करते हुए जनसंख्या का अनुमान लगाने के लिए सटीक रूप से मैप करता है। आप जनसंख्या की संभावना का अनुमान लगाने की कोशिश कर रहे हैं कि का एक तत्व दूसरे के चौराहे पर है । मैं एक साधारण उदाहरण से जुड़ा हुआ हूं, और यह ठीक काम करता है। आप कैसे सुनिश्चित हैं कि आप लगातार कम कर रहे हैं? क्या ऐसा 20 में से 15 बार या 200 में से 150 बार की तरह हुआ है? क्या नमूना वास्तव में यादृच्छिक है? A0A
बिल

1
@ क्या मैंने नमूना आकार बनाम त्रुटि का एक भूखंड जोड़ा है जो दिखाता है कि मैं क्या देख रहा हूं। यह 20 में से 20 गुना अधिक है। यादृच्छिक नमूने के रूप में, यह उतना ही यादृच्छिक है ORDER BY RAND(), जो सही नहीं है, लेकिन इस कार्य के लिए उपयुक्त होना चाहिए।
जिमी सवायजुक

@JimmySawczuk बेहतर नहीं होगा कि "वर्किंग सेट" को सीधे "इंटरसेप्ट" (ए 0, ए) के बजाय "ए" के साथ जोड़ा जाए? क्योंकि "A0" संभवतः पहले रन के बाद एल्गोरिथम में वर्तमान "वर्किंग सेट" से बड़ा होगा ... क्या मैं इसे सही तरीके से समझ रहा हूं?

क्या आप इस बात की पुष्टि कर सकते हैं कि आप वास्तव में सेट का मतलब है न कि मल्टीसेट (यानी, कि सेट में कोई डुप्लिकेट नहीं हैं)? क्योंकि, अगर वहाँ हैं, तो आपकी विधि द्वारा "चौराहे" के आकार को पछाड़ना आसान है। (उस मामले पर विचार करें जहां एक ही तत्व की सिर्फ 100 प्रतियां हैं और आपने उनमें से आधे का नमूना लिया है।)A0
इन्नु

मैं यह भी पूछ सकता हूं कि क्या मूल सेट के आकार के सापेक्ष चौराहे का आकार बहुत छोटा है? यदि हां, तो मुझे ऐसा लगता है कि आपकी समस्या को स्पष्ट करेगा। मैंने कुछ सिमुलेशन चलाए हैं (छोटे सेटों के साथ) और मुझे भी काफी सुसंगत, यद्यपि छोटे, कम करके आंका जा रहा है।

जवाबों:


3

यदि आपके सेट में बार-बार तत्व होते हैं (यानी, यह वास्तव में एक मल्टीसेट है), तो चौराहे का आकार आपकी प्रक्रिया से अधिक हो जाएगा क्योंकि आपका स्केलिंग कारक सैंपल किए गए तत्वों की संख्या का उपयोग करता है न कि अनूठे "प्रकारों" का नमूना। आप पूर्ण सेट में अद्वितीय तत्वों की संख्या के लिए अपने यादृच्छिक नमूने में संख्या अद्वितीय तत्वों के अनुपात के रूप में कारक की गणना करके अनुमान को सही कर सकते हैं ।A0A0


0

जैसा कि इनुओ बताते हैं , मेरी समस्या मेरे नमूना सेट में डुप्लिकेट के कारण थी , जिसके कारण मेरा कम हो गया था, जिसके कारण अंतिम एक्सट्रपलेशन बहुत अधिक हो गया क्योंकि यह व्युत्क्रम के माध्यम से उत्पन्न हुआ था । डुप्लिकेट को हटाने से इस समस्या का समाधान हो गया, और अब एल्गोरिथ्म एक डेल्टा बनाम नमूना आकार प्लॉट बनाता है जो मैं चाहता हूँ की पंक्तियों के साथ अधिक है (लाइनें कुल आबादी के खिलाफ उस नमूना आकार के लिए 95% विश्वास स्तर पर त्रुटि के मार्जिन का संकेत देती हैं। ):A0factorzfactor

भूखंड

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.