Disons que nous avons une distribution de Dirichlet avec le paramètre de vecteur dimension . Comment puis-je tirer un échantillon (un vecteur dimensionnel) de cette distribution? J'ai besoin d'une explication (éventuellement) simple.→ α = [ α 1 , α 2 , . . . , α K ]
sampling
dirichlet-distribution
user1315305
la source
la source
Une méthode simple (bien qu'imprécise) consiste à utiliser le fait que dessiner une distribution de Dirichlet est équivalent à l'expérience de l'urne de Polya. (Dessiner à partir d'un ensemble de boules colorées et chaque fois que vous dessinez une balle, vous la remettez dans l'urne avec une deuxième balle de la même couleur)
Ensuite :
répéter N fois
répéter la fin
Si je ne me trompe pas, cette méthode est asymptotiquement exacte. Mais puisque N est fini, vous ne dessinerez JAMAIS des distributions avec de très faibles probabilités a priori (alors que vous devriez les dessiner avec une très petite fréquence). Je suppose que cela pourrait être satisfaisant dans la plupart des cas avec N = K.10.
la source
np.random.dirichlet
est implémentée, car elle génère des zéros exacts dans les vecteurs de probabilité échantillonnés, bien que ces vecteurs n'appartiennent à aucun support Dirichlet. C'est ce qui m'a amené ici.