Załóżmy, że mamy rozkład Dirichleta z parametrem wektora wymiarowego . Jak narysować próbkę ( wektor wymiarowy) z tego rozkładu? Potrzebuję (możliwie) prostego wyjaśnienia.
sampling
dirichlet-distribution
użytkownik1315305
źródło
źródło
Prosta metoda (choć nie jest dokładna) polega na tym, że narysowanie rozkładu Dirichleta jest równoważne eksperymentowi urny Poli. (Rysowanie z zestawu kolorowych kulek i za każdym razem, gdy losujesz piłkę, wkładasz ją z powrotem do urny drugą piłką tego samego koloru)
Następnie :
powtórz N razy
-> dodaj 1 doαja
koniec powtórz
Jeśli się nie mylę, metoda ta jest asymptotycznie dokładna. Ale ponieważ N jest skończone, NIGDY nie rysujesz niektórych rozkładów z bardzo małymi wcześniejszymi prawdopodobieństwami (podczas gdy powinieneś rysować je z bardzo małą częstotliwością). Myślę, że w większości przypadków może być satysfakcjonujące, gdy N = K.10.
źródło
np.random.dirichlet
implementacji, ponieważ generuje dokładne zera w próbkowanych wektorach prawdopodobieństwa, chociaż takie wektory nie należą do żadnego wsparcia Dirichleta. To mnie tu sprowadziło.