ধরা যাক আমাদের ডাইমেনশনাল ভেক্টর প্যারামিটার দিয়ে একটি ডিরিচলেট বিতরণ রয়েছে । এই বিতরণ থেকে আমি কীভাবে একটি নমুনা (একটি মাত্রিক ভেক্টর) আঁকতে পারি ? আমার একটি (সম্ভবত) সহজ ব্যাখ্যা দরকার।
ধরা যাক আমাদের ডাইমেনশনাল ভেক্টর প্যারামিটার দিয়ে একটি ডিরিচলেট বিতরণ রয়েছে । এই বিতরণ থেকে আমি কীভাবে একটি নমুনা (একটি মাত্রিক ভেক্টর) আঁকতে পারি ? আমার একটি (সম্ভবত) সহজ ব্যাখ্যা দরকার।
উত্তর:
প্রথমে, স্বতন্ত্র এলোমেলো নমুনা প্রতিটি ঘনত্বের সাথে গামা বিতরণ থেকেy 1 , … , y কে
এবং তারপর সেট
এখন, একটি ডিরিচলেট বিতরণ অনুসরণ করবে
Dirichlet বন্টন উইকিপিডিয়ার পৃষ্ঠা আপনি বলে ঠিক কিভাবে Dirichlet বন্টন থেকে নমুনা।
এছাড়াও, R
লাইব্রেরিতে MCMCpack
ডিরিচলেট বিতরণ থেকে এলোমেলো পরিবর্তনগুলি স্যাম্পল করার জন্য একটি ফাংশন রয়েছে।
একটি সাধারণ পদ্ধতি (সঠিক না হলেও) একটি ডেরিচলেট বিতরণ অঙ্কন করা পোলিয়া পোড়া পরীক্ষার সমতুল্য তা ব্যবহার করে consists (রঙিন বলের সেট থেকে আঁকুন এবং প্রতিবার যখন আপনি কোনও বল আঁকেন, আপনি একই রঙের দ্বিতীয় বল দিয়ে এটি আবার কলকে রেখে দেন)
আপনার ডিরিচলেট প্যারামিটারগুলি বিবেচনা করুন i এর উপরে অস্বাভাবিক বিতরণ হিসাবে।
তারপরে:
পুনরাবৃত্তি এন বার
-> বিতরণ ব্যবহার করে একটি আই আঁকুন
-> 1 থেকে
শেষ পুনরাবৃত্তি
আপনার বিতরণ পেতে সাধারণ
যদি আমি ভুল না হয়, তবে সেই পদ্ধতিটি সংক্ষিপ্তভাবে সঠিক। এন যেহেতু সসীম, তাই আপনি খুব সামান্য পূর্ব সম্ভাব্যতার সাথে কিছু বিতরণ আঁকবেন না (যখন আপনি খুব ছোট ফ্রিকোয়েন্সি সহ তাদের আঁকেন)। আমি অনুমান করি এটি N = K.10 এর সাথে বেশিরভাগ ক্ষেত্রে সন্তুষ্ট হতে পারে।
np.random.dirichlet
বাস্তবায়িত হয়েছে, কারণ এটি নমুনাযুক্ত সম্ভাবনার ভেক্টরগুলিতে সঠিক শূন্য উত্পন্ন করে, যদিও এই ধরনের ভেক্টরগুলি কোনও ডিরিচলেট সমর্থনের সাথে সম্পর্কিত নয়। এটিই এখানে আমাকে পেয়েছে।