📅  最后修改于: 2023-12-03 15:04:33.651000             🧑  作者: Mango
numpy.random.dirichlet()
是numpy模块中随机数生成器中的一个函数,用于生成具有Dirichlet分布的随机数组。
Dirichlet分布是一种概率分布,常用于多元分布中的参数估计。它是一个概率分布族,取决于K个正实数参数α₁,...,αk。 对于随机向量θ=(θ₁,...,θk),它可以看做是一个K维变量,它的概率密度函数为:
在Dirichlet分布中,参数α1,α2,...,αk由用户自己定义。当αi=1时,Dirichlet分布退化成一般均匀分布。当所有的αi值相等时,分布成为式子与Beta分布相同。
numpy.random.dirichlet(alpha, size=None)
函数接收两个参数:
函数返回一个大小为size的ndarray,包含了从Dirichlet分布中采样的值。每个采样值是一个长度为K的向量,且满足向量中所有元素的和为1。
import numpy as np
alpha = [1, 2, 3]
size = (2, 3)
samples = np.random.dirichlet(alpha, size)
print(samples)
运行结果:
[[[0.2276758 0.36412174 0.40820246 ]
[0.09129198 0.13322425 0.77548377]
[0.15740528 0.379109 0.46348572]]
[[0.22500693 0.25212254 0.52287053]
[0.27569393 0.24528408 0.47902299]
[0.08734388 0.70521401 0.2074421 ]]]
上面的示例将从具有Dirichlet分布的随机数组进行两次采样,每次生成一个形状为(3,)的向量,长度为3的每个向量中的元素自动规样本取样值的总和是1。