當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。