本文簡要介紹 python 語言中 numpy.random.multivariate_normal
的用法。
用法:
random.multivariate_normal(mean, cov, size=None, check_valid='warn', tol=1e-8)
從多元正態分布中抽取隨機樣本。
多元正態分布、多正態分布或高斯分布是一維正態分布向更高維度的推廣。這種分布由其均值和協方差矩陣指定。這些參數類似於一維正態分布的均值(平均值或“center”)和方差(標準差或“width,”平方)。
注意
新代碼應改為使用
default_rng()
實例的multivariate_normal
方法;請參閱快速入門。- mean: 一維 數組,長度為 N
N 維分布的平均值。
- cov: 2-D 數組,形狀 (N, N)
分布的協方差矩陣。它必須是對稱的和半正定的才能正確采樣。
- size: int 或整數元組,可選
例如,給定一個形狀,
(m,n,k)
,m*n*k
生成樣本,並打包在一個m-經過-n-經過-k安排。因為每個樣本都是N-維,輸出形狀為(m,n,k,N)
.如果未指定形狀,則單個 (N-D) 樣品被退回。- check_valid: { ‘warn’, ‘raise’, ‘ignore’ },可選
協方差矩陣不是半正定時的行為。
- tol: 浮點數,可選
檢查協方差矩陣中的奇異值時的容差。 cov 在檢查前被強製加倍。
- out: ndarray
繪製的樣本,形狀尺寸,如果提供的話。如果不是,形狀是
(N,)
.換句話說,每個條目
out[i,j,...,:]
是從分布中提取的 N 維值。
參數:
返回:
注意:
均值是 N 維空間中的一個坐標,表示最有可能生成樣本的位置。這類似於一維或單變量正態分布的鍾形曲線的峰值。
協方差表示兩個變量一起變化的水平。從多元正態分布中,我們抽取 N 維樣本 。協方差矩陣元素 是 和 的協方差。元素 是 (即它的“spread”)的方差。
代替指定完整的協方差矩陣,流行的近似值包括:
通過繪製生成的data-points,可以在二維中看到此幾何屬性:
>>> mean = [0, 0] >>> cov = [[1, 0], [0, 100]] # diagonal covariance
對角協方差意味著點沿 x 或 y 軸定向:
>>> import matplotlib.pyplot as plt >>> x, y = np.random.multivariate_normal(mean, cov, 5000).T >>> plt.plot(x, y, 'x') >>> plt.axis('equal') >>> plt.show()
請注意,協方差矩陣必須是半正定的(又名nonnegative-definite)。否則,此方法的行為是未定義的,並且不能保證向後兼容性。
參考:
Papoulis, A.,“概率、隨機變量和隨機過程”,第 3 版,紐約:McGraw-Hill,1991 年。
Duda, R. O.、Hart, P. E. 和 Stork, D. G.,“模式分類”,第 2 版,紐約:Wiley,2001。
1:
2:
例子:
>>> mean = (1, 2) >>> cov = [[1, 0], [0, 1]] >>> x = np.random.multivariate_normal(mean, cov, (3, 3)) >>> x.shape (3, 3, 2)
以下可能是正確的,因為 0.6 大約是標準偏差的兩倍:
>>> list((x[0,0,:] - mean) < 0.6) [True, True] # random
相關用法
- Python numpy random.multinomial用法及代碼示例
- Python numpy random.mtrand.RandomState.wald用法及代碼示例
- Python numpy random.mtrand.RandomState.multivariate_normal用法及代碼示例
- Python numpy random.mtrand.RandomState.gumbel用法及代碼示例
- Python numpy random.mtrand.RandomState.multinomial用法及代碼示例
- Python numpy random.mtrand.RandomState.logistic用法及代碼示例
- Python numpy random.mtrand.RandomState.shuffle用法及代碼示例
- Python numpy random.mtrand.RandomState.poisson用法及代碼示例
- Python numpy random.mtrand.RandomState.seed用法及代碼示例
- Python numpy random.mtrand.RandomState.triangular用法及代碼示例
- Python numpy random.mtrand.RandomState.weibull用法及代碼示例
- Python numpy random.mtrand.RandomState.rand用法及代碼示例
- Python numpy random.mtrand.RandomState.power用法及代碼示例
- Python numpy random.mtrand.RandomState.randint用法及代碼示例
- Python numpy random.mtrand.RandomState.choice用法及代碼示例
- Python numpy random.mtrand.RandomState.laplace用法及代碼示例
- Python numpy random.mtrand.RandomState.standard_gamma用法及代碼示例
- Python numpy random.mtrand.RandomState.permutation用法及代碼示例
- Python numpy random.mtrand.RandomState.bytes用法及代碼示例
- Python numpy random.mtrand.RandomState.noncentral_f用法及代碼示例
- Python numpy random.mtrand.RandomState.rayleigh用法及代碼示例
- Python numpy random.mtrand.RandomState.standard_t用法及代碼示例
- Python numpy random.mtrand.RandomState.geometric用法及代碼示例
- Python numpy random.mtrand.RandomState.dirichlet用法及代碼示例
- Python numpy random.mtrand.RandomState.uniform用法及代碼示例
注:本文由純淨天空篩選整理自numpy.org大神的英文原創作品 numpy.random.multivariate_normal。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。