что делает numpy .random.dirichlet? - PullRequest
       22

что делает numpy .random.dirichlet?

2 голосов
/ 10 января 2020

Мне нужен дистрибутив Dirichlet, и я использую numpy .random.dirichlet. когда я даю альфа = [1,1,1,1] в соответствии с формулой Дирихле PDF, это должно привести к равномерной функции. но это не дает мне единого вектора. кто-нибудь знает почему?

1 Ответ

1 голос
/ 10 января 2020

Насколько я могу судить, функция numpy.random.dirichlet работает как задумано. Я думаю, вы, возможно, немного не понимаете, что такое дистрибутив Дирихле.

k-мерное распределение Дирихле будет иметь k параметров (от x_1 до x_k), которые должны все сложиться в 1. Если вы попробуете sum(np.random.dirichlet([1, 1, 1, 1])), результат всегда будет равен 1 (дать или принять некоторую ошибку округления ). Таким образом, хотя np.random.dirichlet([1, 1, 1, 1])) действительно является однородным по своей поддержке, эта поддержка ограничена требованием, что x_1 + x_2 + x_3 + x_4 = 1, и выходной массив не будет распределен в формате Unif (0, 1).

Эта статья дает относительно простое и нетехническое объяснение концепции.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...