मुझे टिप्पणियों के भंडारण के बिना डेटा के एक बड़े सेट पर वास्तविक समय में क्वार्टर्टाइल (Q1, मध्य और Q3) की गणना करने की आवश्यकता है। मैंने पहली बार P वर्ग एल्गोरिथ्म (जैन / क्लैमटैक) की कोशिश की, लेकिन मैं इससे संतुष्ट नहीं था (थोड़ा बहुत सीपीयू उपयोग और कम से कम अपने डाटासेट पर आश्वस्त नहीं)।
मैं अब फेम एल्गोरिथ्म ( फेल्डमैन / शैविट ) का उपयोग मक्खी पर मंझले का अनुमान लगाने के लिए करता हूं और एल्गोरिथ्म को भी Q1 और Q3 की गणना करने के लिए व्युत्पन्न करने का प्रयास करता हूं :
M = Q1 = Q3 = first data value
step =step_Q1 = step_Q3 = a small value
for each new data :
# update median M
if M > data:
M = M - step
elif M < data:
M = M + step
if abs(data-M) < step:
step = step /2
# estimate Q1 using M
if data < M:
if Q1 > data:
Q1 = Q1 - step_Q1
elif Q1 < data:
Q1 = Q1 + step_Q1
if abs(data - Q1) < step_Q1:
step_Q1 = step_Q1/2
# estimate Q3 using M
elif data > M:
if Q3 > data:
Q3 = Q3 - step_Q3
elif Q3 < data:
Q3 = Q3 + step_Q3
if abs(data-Q3) < step_Q3:
step_Q3 = step_Q3 /2
फिर से शुरू करने के लिए, यह केवल दो में सेट डेटा को विभाजित करने के लिए मक्खी पर प्राप्त माध्य एम का उपयोग करता है और फिर Q1 और Q3 दोनों के लिए समान एल्गोरिथ्म का पुन: उपयोग करता है।
यह किसी भी तरह काम करता है, लेकिन मैं प्रदर्शित नहीं कर पा रहा हूं (मैं गणितज्ञ नहीं हूं)। क्या यह त्रुटिपूर्ण है? मैं किसी भी सुझाव या समस्या को फिट करने वाली अन्य तकनीक की सराहना करूंगा।
मदद के लिए आपका बहुत बहुत धन्यवाद !
==== EDIT =====
उन लोगों के लिए जो इस तरह के सवालों में रुचि रखते हैं, कुछ हफ्तों के बाद, मैं अंत में केवल 100 मूल्यों की एक revervoir के साथ जलाशय नमूनाकरण का उपयोग करके समाप्त हो गया और इसने मुझे बहुत ही परिणाम दिया।