मान लीजिए कि हमारे पास -dimensional वेक्टर पैरामीटर । मैं इस वितरण से एक नमूना (एक आयामी वेक्टर) कैसे आकर्षित कर सकता हूं ? मुझे (संभवतः) सरल स्पष्टीकरण की आवश्यकता है।→ अल्फा = [ अल्फा 1 , अल्फा 2 , । । । , α K ] के
मान लीजिए कि हमारे पास -dimensional वेक्टर पैरामीटर । मैं इस वितरण से एक नमूना (एक आयामी वेक्टर) कैसे आकर्षित कर सकता हूं ? मुझे (संभवतः) सरल स्पष्टीकरण की आवश्यकता है।→ अल्फा = [ अल्फा 1 , अल्फा 2 , । । । , α K ] के
जवाबों:
सबसे पहले, स्वतंत्र यादृच्छिक नमूने गामा वितरण से प्रत्येक को घनत्व के साथवाई 1 , … , वाई के
और फिर सेट करें
अब, एक वितरण का अनुसरण करेगा
Dirichlet वितरण पर विकिपीडिया पृष्ठ आपको बताता है कि वास्तव में कैसे Dirichlet वितरण से सैंपल लेने के लिए।
इसके अलावा, R
लाइब्रेरी MCMCpack
में डिरिक्लेट डिस्ट्रीब्यूशन से रैंडम वेरिएबल को सैंपल देने का एक फंक्शन है।
एक सरल विधि (जबकि सटीक नहीं) में इस तथ्य का उपयोग करना शामिल है कि एक डिरिचलेट वितरण ड्राइंग पोल्या के कलश के प्रयोग के बराबर है। (रंगीन गेंदों के एक सेट से आकर्षित और हर बार जब आप एक गेंद खींचते हैं, तो आप इसे वापस उसी रंग की दूसरी गेंद के साथ कलश में डालते हैं)
अपने पैरामीटर पर एक असामान्य वितरण के रूप में विचार करें ।
फिर :
एन बार दोहराएं
-> मैं का उपयोग करके एक ड्रा करता हूं
-> 1 को जोड़ें
अंत दोहराना
अगर मैं गलत नहीं हूं, तो यह तरीका पूरी तरह से सटीक है। लेकिन चूँकि N परिमित है, तो आप बहुत कम पूर्व संभाव्यता वाले कुछ वितरणों को आकर्षित करेंगे (जबकि आपको उन्हें बहुत कम आवृत्ति के साथ आकर्षित करना चाहिए)। मुझे लगता है कि यह ज्यादातर मामलों में N = K.10 के साथ संतोषजनक हो सकता है।
np.random.dirichlet
लागू किया गया है, क्योंकि यह नमूना संभाव्यता वाले वैक्टर में सटीक शून्य उत्पन्न करता है, हालांकि इस तरह के वैक्टर किसी भी ड्यूरिचलेट समर्थन से संबंधित नहीं हैं। यही मुझे यहां मिला है।