numpy.random.dirichlet¶
-
numpy.random.
dirichlet
(alpha, size=None)¶ 从Dirichlet分布绘制样本。
从Dirichlet分布绘制尺寸k的尺寸样本。Dirichlet分布随机变量可以看作是Beta分布的多元泛化。Dirichlet pdf是贝叶斯推理中多项式的共轭前缀。
参数: alpha:数组
分布参数(k维的样本维度k)。
size:int或tuple的整数,可选
输出形状。如果给定形状是例如
(m, n, k)
,则m * n * k
默认值为None,在这种情况下返回单个值。返回: samples:ndarray,
绘制的样本,形状(大小,alpha.ndim)。
笔记
使用以下属性进行计算:对于每个维,从形状alpha_i的标准伽马生成器绘制随机样本y_i,然后是Dirichlet分布。
参考文献
[R214] David McKay,“Information Theory,Inference and Learning Algorithms”,第23章,http://www.inference.phy.cam.ac.uk/mackay/ [R215] 维基百科,“Dirichlet分布”,http://en.wikipedia.org/wiki/Dirichlet_distribution 例子
以维基百科中引用的示例为例,如果想要将字符串(每个初始长度为1.0)切割成不同长度的K个字节,则可以使用该分布,其中每个字段平均具有指定的平均长度,但允许一些变化相对尺寸的碎片。
>>> s = np.random.dirichlet((10, 5, 3), 20).transpose()
>>> plt.barh(range(20), s[0]) >>> plt.barh(range(20), s[1], left=s[0], color='g') >>> plt.barh(range(20), s[2], left=s[0]+s[1], color='r') >>> plt.title("Lengths of Strings")