从 Dirichlet 分布中采样的随机向量包含落在域 [0,1] 中的值,并且它们总和为 1。在 numpy 中,它可以这样编程,向量大小为 5:
x = numpy.random.dirichlet(np.ones(5))
相反,我想要一个随机向量,其中包含[-1,1] 和总和为 1的值,有人告诉我可以通过将 Dirichlet 生成的x
向量转换为y = 2x -1
下面是这种转变的尝试。但是,该脚本无法正常工作,因为y
没有根据需要总和为 1。它怎么能被修复,或者它可能y = 2x -1
没有按照他们所说的那样做?
x = numpy.random.dirichlet(np.ones(5))
y = 2*x -1
print(x, np.sum(x))
print(y, np.sum(y))
输出:
[0.0209344 0.44791586 0.21002354 0.04107336 0.28005284] 1.0
[-0.9581312 -0.10416828 -0.57995291 -0.91785327 -0.43989433] -3.0000000000000004