আমি একটি অ্যালগরিদম নিয়ে কাজ করছি যা কমপক্ষে 2 টি সেট ছেদ দ্বারা উত্পন্ন একটি সেট আকার গণনা করা প্রয়োজন। আরো নির্দিষ্টভাবে:
ছেদ করা সেটগুলি এসকিউএল কোয়েরি দ্বারা উত্পাদিত হয় এবং জিনিসগুলি দ্রুত রাখার প্রয়াসে আমি প্রতিটি প্রশ্নের আগে সময়ের একটি গণনা পাই, তারপরে সর্বনিম্ন গণনা (এ টি ) সহ সেটটি নিয়ে এবং সেই আইডিগুলি সীমানা হিসাবে ব্যবহার করি বড় বড় প্রশ্নগুলির বাকি, তাই ছেদ কার্যকরভাবে হয়ে যায়:
এমনকি এই কৌশলটি আমাকে চালানোর জন্য বেশ কয়েকটি বড় প্রশ্ন , যেহেতুকখনও কখনও বড় হতে পারে। যে একটি র্যান্ডম নমুনা নিচ্ছে সঙ্গে তার আচরণ আমার ধারণা এবং একটি সঠিক অনুমান ফিরে extrapolating সামনে সেট বাকি সঙ্গে এটি ছেদ । আমার প্রশ্নটি হল: স্যাম্পলিং সম্পর্কে আরও ভাল উপায় এবং তারপরে মানটি ফিরে পাওয়ার জন্য এক্সট্রাপোলেটিং , যা সম্পূর্ণ সঠিক না হলে, একটি অনুমানযোগ্য ত্রুটির পরিসীমা আছে?
আমি এখন পর্যন্ত যা চেষ্টা করেছি তা এখানে (সিউডোকোডে, সাজানো):
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
, কম নমুনার আকারের সাথে উচ্চতর অনুমান পাওয়া যায়। অতিরিক্তভাবে, আমি নিশ্চিত না কীভাবে এটি ছেদ করতে দুটির বেশি সেট দিয়ে স্কেল করবে।
আমি আশা করি এই প্রশ্নটি বোধগম্য হয়েছে, যদি আমি আরও কিছু স্পষ্ট করতে পারি তবে আমাকে জানান। এছাড়াও, যদি এই প্রশ্নটি বিষয়বস্তু থেকে দূরে থাকে বা অন্য কোথাও সম্পর্কিত হয়, তবে দয়া করে আমাকে জানান এবং আমি এটি সরানোতে খুশি।
প্রতি বিল এর মন্তব্য , আমি নমুনা আকার বনাম ত্রুটি প্রদর্শন করা কিছু দ্রুত বিচারের দৌড়ে। প্রতিটি নমুনা আকারের বালতিটি 20 বার চালানো হয়েছিল এবং আপনি দেখতে পাচ্ছেন যে খুব সুন্দর প্রবণতা রয়েছে:
ORDER BY RAND()
, যা নিখুঁত নয় তবে এই কাজের জন্য উপযুক্ত হওয়া উচিত।