-
numpy.random.normal學習筆記用例:
- 正態分布=高斯分布
-
mean=loc=均值(或稱期待值) stddev=scale=標准差 shape=size=輸出形狀,二者在處理這個參數時候(a,b)=[a,b],其中,numpy的normal對參數格式要求更靈活一些。 比如創建隨機數的一行兩列數組:
np.random.normal([2])=np.random.normal((2))=np.random.normal(0,1,2)注意最后一種用法必須帶上前面兩個參數,否則傳遞參數時候會把2當作均值傳遞
而tf的random_normal對shape的要求不能是數字,必須為[]或()格式
———————————————————————————————————————————————————————————————————————————————— -
對於numpy.random.normal函數,有三個參數(loc, scale, size),分別代表生成的高斯分布的隨機數的均值、方差以及輸出的size.
numpy.random.normal(loc=0.0, scale=1.0, size=None) -
意義如下:
參數loc(float):正態分布的均值,對應着這個分布的中心。loc=0說明這一個以Y軸為對稱軸的正態分布;
參數scale(float):正態分布的標准差,對應分布的寬度,scale越大,正態分布的曲線越矮胖,scale越小,曲線越高瘦。
參數size(int 或者整數元組):輸出的值賦在shape里,默認為None。
———————————————————————————————————————————————————————————————————————————————— -
功能:
從正態(高斯)分布中抽取隨機樣本。 - 淵源:
-
正態分布(Normal distribution),也稱“常態分布”,又名 高斯分布(Gaussian distribution),最早由 棣莫弗(Abraham de Moivre)在求 二項分布的漸近公式中得到。
-
在其后200年,高斯和拉普拉斯也分別發現了正態分布的概率密度函數。自然界中有許多符合正態分布的案例。例如,它可以描述樣本受大量微小隨機擾動影響的常見分布,其中,每個擾動都有自己獨特的分布。
正態曲線呈鍾型,兩頭低,中間高,左右對稱因其曲線呈鍾形,因此人們又經常稱之為 鍾形曲線。
參數: -
| 變量名 | 數據類型 | 功能 |
|---|---|---|
| loc | 浮點型數據或者浮點型數據組成的數組 | 分布的均值(中心) |
| scale | 浮點型數據或者浮點型數據組成的數組 | 分布的標准差(寬度) |
| size | 整數或者整數組成的元組,可選參數 | 輸出值的維度。如果給定的維度為(m, n, k),那么就從分布中抽取m * n * k個樣本。如果size為None(默認值)並且loc和scale均為標量,那么就會返回一個值。否則會返回np.broadcast(loc, scale).size個值 |
- 返回值:
| 變量名 | 數據類型 | 功能 |
|---|---|---|
| out | n維數組或標量 | 從含參的正態分布中抽取的隨機樣本 |
- 備注:
高斯分布的概率密度函數為 p ( x ) = 1 2 π σ 2 e − ( x − μ ) 2 2 σ 2 p(x)=\frac{1}{\sqrt{2\pi\sigma^2}}e^{-\frac{(x-\mu)^2}{2\sigma^2}}p(x)=2πσ2
tf.random_normal()函數用於從服從指定正太分布的數值中取出指定個數的值。
tf.random_normal(shape, mean=0.0, stddev=1.0, dtype=tf.float32, seed=None, name=None)
np.random.normal()給出均值為loc,標准差為scale的高斯隨機數(場).
numpy.random.normal(loc=0.0, scale=1.0, size=None)
