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


Python SciPy stats.dirichlet用法及代码示例


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

用法:

scipy.stats.dirichlet = <scipy.stats._multivariate.dirichlet_gen object>#

狄利克雷随机变量。

alpha 关键字指定分布的浓度参数。

参数

alpha array_like

浓度参数。条目的数量决定了分布的维度。

seed {无,int,np.random.RandomState,np.random.Generator},可选

用于绘制随机变量。如果种子None, 这RandomState使用单例。如果种子是一个 int,一个新的RandomState使用实例,用种子播种。如果种子已经是一个RandomState或者Generator实例,然后使用该对象。默认为None.

注意

每个 条目必须为正数。该分布仅支持由定义的单纯形

其中

如果分位数不在单纯形内,则会引发 ValueError。

dirichlet 的概率密度函数为

其中

,浓度参数和 取值的空间的维度。

请注意,dirichlet 接口有些不一致。 rvs 函数返回的数组根据 pdf 和 logpdf 所需的格式进行转置。

例子

>>> import numpy as np
>>> from scipy.stats import dirichlet

生成狄利克雷随机变量

>>> quantiles = np.array([0.2, 0.2, 0.6])  # specify quantiles
>>> alpha = np.array([0.4, 5, 15])  # specify concentration parameters
>>> dirichlet.pdf(quantiles, alpha)
0.2843831684937255

相同的 PDF,但遵循对数刻度

>>> dirichlet.logpdf(quantiles, alpha)
-1.2574327653159187

一旦我们指定了狄利克雷分布,我们就可以计算感兴趣的数量

>>> dirichlet.mean(alpha)  # get the mean of the distribution
array([0.01960784, 0.24509804, 0.73529412])
>>> dirichlet.var(alpha) # get variance
array([0.00089829, 0.00864603, 0.00909517])
>>> dirichlet.entropy(alpha)  # calculate the differential entropy
-4.3280162474082715

我们还可以从分布中返回随机样本

>>> dirichlet.rvs(alpha, size=1, random_state=1)
array([[0.00766178, 0.24670518, 0.74563305]])
>>> dirichlet.rvs(alpha, size=2, random_state=2)
array([[0.01639427, 0.1292273 , 0.85437844],
       [0.00156917, 0.19033695, 0.80809388]])

或者,可以调用对象(作为函数)来固定浓度参数,返回 “frozen” Dirichlet 随机变量:

>>> rv = dirichlet(alpha)
>>> # Frozen object with the same methods but holding the given
>>> # concentration parameters fixed.

相关用法


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