我正在使用Dirichlet分布来生成一个随机数的数组,总和为1.然而,我实际上认为我需要这些数字总和为任意常数。
import numpy as np
d = np.random.dirichlet(np.ones(10), size=1)
我很困惑一个很好的方法来修改这个,所以总和是,比方说10.大概:
10*d
不是一个很好的方法。
答案 0 :(得分:2)
我认为N*d
是修改随机数总和为N=10
的合法方式。 Dirichlet random numbers are samples from a Gamma generator that are normalized to sum to 1(另见Wikipedia)。由于您希望它们总和为N
而不是1,因此将每个Dirichlet随机数乘以N
是完全合法的。