আমার পর্যালোচনাগুলি সংরক্ষণ না করে রিয়েল-টাইমে কোয়েলটিস (কিউ 1, মিডিয়ান এবং কিউ 3) গণনা করা দরকার। আমি প্রথমে পি স্কোয়ার অ্যালগোরিদম (জৈন / ক্ল্যামটাক) চেষ্টা করেছিলাম তবে আমি এতে সন্তুষ্ট নই (কিছুটা বেশি সিপিইউ ব্যবহার করে এবং আমার ডেটাসেটে নির্ভুলতার দ্বারা নিশ্চিত নই)।
আমি এখন ফ্লাই অ্যালগরিদম ( ফিল্ডম্যান / শ্যাভিট ) ফ্লাইতে মিডিয়েনটি অনুমান করার জন্য ব্যবহার করি এবং কিউ 1 এবং কিউ 3 কেও গণনা করতে অ্যালগরিদমটি উত্পন্ন করার চেষ্টা করব:
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 উভয়ের জন্য একই অ্যালগরিদম পুনরায় ব্যবহার করতে।
এটি কোনওভাবে কাজ করে বলে মনে হচ্ছে তবে আমি প্রদর্শন করতে পারছি না (আমি গণিতবিদ নই)। এটি ত্রুটিযুক্ত? আমি কোনও পরামর্শ বা চূড়ান্তভাবে অন্যান্য সমস্যার জন্য উপযুক্ত কৌশলগুলি প্রশংসা করব।
আপনার সাহায্যের জন্য আপনাকে অনেক ধন্যবাদ !
==== সম্পাদনা =====
যারা এই জাতীয় প্রশ্নে আগ্রহী তাদের জন্য, কয়েক সপ্তাহ পরে, আমি অবশেষে কেবলমাত্র 100 টি মূল্যবোধের রিভারভায়ার সহ জলাধার স্যাম্পলিং ব্যবহার করে শেষ করেছি এবং এটি খুব সন্তোষজনক ফলাফল দিয়েছে (আমার কাছে)।