2

我正在使用 Dirichlet 分布来生成一个随机数数组,总和为 1。但是,我实际上认为我需要这些数字总和为任意常数。

import numpy as np
d = np.random.dirichlet(np.ones(10), size=1)

我对修改它的好方法感到困惑,这样总和就是 10。大概:

10*d

这不是一个好方法。

4

1 回答 1

2

我认为N*d将随机数修改为总和为N=10. Dirichlet 随机数是来自 Gamma 生成器的样本,它们被归一化为总和为 1(另见Wikipedia)。由于您希望它们总和N而不是 1,因此将每个 Dirichlet 随机数乘以 是完全合法的N

于 2013-10-10T16:20:03.977 回答