当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python numpy random.dirichlet用法及代码示例


本文简要介绍 python 语言中 numpy.random.dirichlet 的用法。

用法:

random.dirichlet(alpha, size=None)

从狄利克雷分布中抽取样本。

从狄利克雷分布中绘制尺寸为 k 的 size 样本。 Dirichlet-distributed 随机变量可以看作是 Beta 分布的多元泛化。 Dirichlet 分布是贝叶斯推理中多项分布的共轭先验。

注意

新代码应改为使用default_rng() 实例的dirichlet 方法;请参阅快速入门。

参数

alpha 浮点数序列,长度 k

分布参数(长度为 k 的样本长度为 k )。

size int 或整数元组,可选

输出形状。例如,如果给定的形状是 (m, n) ,则绘制 m * n * k 样本。默认为无,在这种情况下,将返回长度为 k 的向量。

返回

samples 数组,

绘制的样本,形状为 (size, k)

抛出

ValueError

如果 alpha 中的任何值小于或等于零

注意

Dirichlet 分布是对满足条件 的向量 的分布。

Dirichlet-distributed随机向量 的概率密度函数

其中 是包含正浓度参数的向量。

该方法使用以下属性进行计算:假设 是一个随机向量,其分量遵循标准 gamma 分布,则 为 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-dirichlet-1.png

相关用法


注:本文由纯净天空筛选整理自numpy.org大神的英文原创作品 numpy.random.dirichlet。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。