numpy.random.normal學習筆記


  • 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年,高斯和拉普拉斯也分別發現了正態分布的概率密度函數。自然界中有許多符合正態分布的案例。例如,它可以描述樣本受大量微小隨機擾動影響的常見分布,其中,每個擾動都有自己獨特的分布。

    C.F.高斯在研究測量誤差時從另一個角度導出了它。P.S.拉普拉斯和高斯研究了它的性質。是一個在 數學、物理及工程等領域都非常重要的 概率分布,在統計學的許多方面有着重大的影響力。
    正態曲線呈鍾型,兩頭低,中間高,左右對稱因其曲線呈鍾形,因此人們又經常稱之為 鍾形曲線


    參數:

變量名 數據類型 功能
loc 浮點型數據或者浮點型數據組成的數組 分布的均值(中心)
scale 浮點型數據或者浮點型數據組成的數組 分布的標准差(寬度)
size 整數或者整數組成的元組,可選參數 輸出值的維度。如果給定的維度為(m, n, k),那么就從分布中抽取m * n * k個樣本。如果size為None(默認值)並且locscale均為標量,那么就會返回一個值。否則會返回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πσ21e2σ2(xμ)2其中μ \muμ代表均值,σ \sigmaσ代表標准差,標准差的平方σ 2 \sigma^2σ2稱作方差。 函數在均值位置點取到峰值,當標准差增大的時候,其寬度也會增加(函數在x − σ x-\sigmaxσ到x + σ x+\sigmax+σ之間的面積為其總面積的0.607倍)。這意味着numpy.random.normal更有可能返回靠近均值的樣本而不是那些遠離均值的樣本。

 

 

 

最后對比參考TF和NP:


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)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM