কম্পিউটার টিউটোরিয়াল

র‍্যান্ডোমাইজড অ্যালগরিদম ও ডেটা স্ট্রিম ম্যানেজমেন্ট সিস্টেম (DSMS) ডেটা মাইনিং-এ


র‍্যান্ডোমাইজড অ্যালগরিদম (Randomized Algorithms)

র‍্যান্ডোমাইজড অ্যালগরিদম — র‍্যান্ডোম স্যাম্পলিং এবং স্কেচিং (sketching) এর রূপে — বড়, উচ্চ-ডাইমেনশনাল ডেটা স্ট্রিম হ্যান্ডেল করতে ব্যবহৃত হয়। র‍্যান্ডোমাইজেশনের প্রয়োজনীয়তা পরিচিত ডিটারমিনিস্টিক অ্যালগরিদমের চেয়ে সহজ এবং আরও কার্যকর অ্যালগরিদমে পরিচালিত করে।

ল্যাস ভেগাস vs মոն্টে কার্লো অ্যালগরিদম

  • ল্যাস ভেগাস অ্যালগরিদম: যদি একটি র‍্যান্ডোমাইজড অ্যালগরিদম সর্বদা সঠিক উত্তর ফেরত দেয় কিন্তু রানিং টাইম পরিবর্তনশীল হয়।
  • মোন্টে কার্লো অ্যালগরিদম: রানিং টাইমের ওপর বাউন্ড থাকে কিন্তু সঠিক ফলাফল ফেরত দিতে পারে না। সাধারণত মোন্টে কার্লো অ্যালগরিদম বিবেচনা করা হয়।

একটি র‍্যান্ডোমাইজড অ্যালগরিদমের গুরুত্ব হল কেবল ডিটারমিনিস্টিক অ্যালগরিদমের একটি সেটের ওপর একটি প্রোবাবিলিটি ডিস্ট্রিবিউশন। যেহেতু একটি র‍্যান্ডোমাইজড অ্যালগরিদম একটি র‍্যান্ডোম ভেরিয়েবল ফেরত দেয় ফলাফল হিসেবে, সেই র‍্যান্ডোম ভেরিয়েবলের টেইল প্রোবাবিলিটির ওপর বাউন্ড থাকতে পারে। এটি বলে যে একটি র‍্যান্ডোম ভেরিয়েবল তার প্রত্যাশিত মান থেকে বিচ্যুত হওয়ার প্রোবাবিলিটি কম। মূল টুল হল চেবিশেভের অসমতা (Chebyshev's Inequality)।

চেবিশেভের অসমতা

X একটি র‍্যান্ডোম ভেরিয়েবল যার গড় μ এবং স্ট্যান্ডার্ড ডেভিয়েশন σ (ভ্যারিয়েন্স σ²)। চেবিশেভের অসমতা বলে:

$$\mathrm{P(|X-\mu|>k)<\frac{\sigma^2 }{k^2}}$$

যেকোনো দেওয়া পজিটিভ রিয়েল নম্বর k-এর জন্য। এই অসমতা একটি র‍্যান্ডোম ভেরিয়েবলের ভ্যারিয়েন্স বাউন্ড করতে ব্যবহৃত হয়। অনেক ক্ষেত্রে, একাধিক র‍্যান্ডোম ভেরিয়েবল ব্যবহার করে ফলাফলে আত্মবিশ্বাস বাড়ানো যায়। এই র‍্যান্ডোম ভেরিয়েবলগুলো স্বাধীন হলে, চেরনফ বাউন্ড (Chernoff bounds) ব্যবহার করা যায়।

চেরনফ বাউন্ড (দুর্বল সংস্করণ)

X₁, X₂, …, Xₙ независиম পয়সন ট্রায়াল। পয়সন ট্রায়ালে, সাফল্যের প্রোবাবিলিটি ট্রায়াল থেকে ট্রায়ালে পরিবর্তিত হয়। যদি X = X₁ + ... + Xₙ, তবে চেরনফ বাউন্ডের একটি দুর্বল সংস্করণ বলে:

$$\mathrm{P[X<(1+\delta)\mu] < e^{-\mu\delta^2}}$$

যেখানে δ ∈ (0, 1]। এটি দেখায় যে গড় থেকে দূরে যাওয়ার সাথে সাথে প্রোবাবিলিটি এক্সপোনেনশিয়ালি কমে যায়, যা খারাপ অনুমানকে অনেক কম সম্ভাব্য করে।

ডেটা স্ট্রিম ম্যানেজমেন্ট সিস্টেম (Data Stream Management System - DSMS)

একটি DSMS-এ একাধিক ডেটা স্ট্রিম থাকে। সেগুলো অনলাইন আসে, liên tục, টেম্পোরালি অর্ডারড, এবং সম্ভবত অনন্ত। যেহেতু একটি ডেটা স্ট্রিমের উপাদান প্রক্রিয়া করা হয়ে গেছে, সেটি ডিসকার্ড বা আর্কাইভ করা হয়, এবং সেটি স্পষ্টভাবে মেমরিতে সংরক্ষিত না থাকলে আবার ফেচ করা যায় না।

স্ট্রিম ডেটা কোয়েরি প্রসেসিং আর্কিটেকচার

একটি স্ট্রিম ডেটা কোয়েরি প্রসেসিং ফ্রেমওয়ার্কে তিনটি উপাদান থাকে:

  • এন্ড-ইউজার
  • কোয়েরি প্রসেসর
  • স্ক্র্যাচ স্পেস (যে মেইন মেমরি এবং ডিস্ক উভয়ই ধারণ করতে পারে)

এন্ড ইউজার DSMS-এ একটি কোয়েরি পোস্ট করে, এবং কোয়েরি প্রসেসর কোয়েরিটি নেয়, স্ক্র্যাচ স্পেসে সংরক্ষিত ডেটা ব্যবহার করে প্রক্রিয়া করে, এবং ফলাফল ইউজারকে ফেরত দেয়।

কোয়েরির ধরন

  • ওন-টাইম কোয়েরি (One-time query): একটি পয়েন্ট-ইন-টাইম স্ন্যাপশটের ওপর একবার গণনা করা হয়, উত্তর ইউজারকে ফেরত দেওয়া হয়।
  • কন্টিনিউয়াস কোয়েরি (Continuous query): ডেটা স্ট্রিম অব্যাহত আসার সাথে সাথে liên tục গণনা করা হয়।
  1. ডেটাবেস ম্যানেজমেন্ট সিস্টেম (DBMS) কী?

  2. বিজ্ঞান ও প্রকৌশলে ডেটা মাইনিং-এর ভূমিকা কী?

  3. স্থান-কাল ডেটা মাইনিং (Spatiotemporal Data Mining) কী?

  4. C#-এ string এবং String ডেটা টাইপের পার্থক্য