用法:
RandomState.dirichlet(alpha, size=None)
从Dirichlet分布中抽取样本。
从Dirichlet分布中绘制尺寸为k的尺寸样本。 Dirichlet-distributed随机变量可以看作是Beta分布的多元概括。 Dirichlet分布是贝叶斯推断中多项式分布的共轭先验。
参数: - alpha: : array
分布参数(k维样本为k维样本)。
- size: : int 或 tuple of ints, 可选参数
输出形状。如果给定的形状是
(m, n, k)
, 然后m * n * k
抽取样品。默认值为无,在这种情况下,将返回单个值。
返回值: - samples: : ndarray,
绘制的样本,形状(大小,alpha.ndim)。
异常: - ValueError:
如果alpha中的任何值小于或等于零
注意:
Dirichlet分布是向量的分布满足条件和。
概率密度函数Dirichlet-distributed随机向量与...成正比
哪里是包含正浓度参数的向量。
该方法使用以下属性进行计算:let是一个随机向量,其分量遵循标准伽玛分布,然后是Dirichlet-distributed
参考文献:
[1] David McKay,“信息论,推理和学习算法”,第23章,http://www.inference.org.uk/mackay/itila/ [2] 维基百科,“Dirichlet distribution”,https://en.wikipedia.org/wiki/Dirichlet_distribution 例子:
以Wikipedia中引用的示例为例,如果一个人想要将字符串(每个初始长度为1.0)切成不同长度的K个片段,则可以使用这种分布,其中每个片段平均具有指定的平均长度,但允许件的相对尺寸。
>>> s = np.random.dirichlet((10, 5, 3), 20).transpose()
>>> import matplotlib.pyplot as plt >>> 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")
注:本文由纯净天空筛选整理自 numpy.random.mtrand.RandomState.dirichlet。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。