From: https://www.cs.cmu.edu/~scohen/psnlp-lecture6.pdf 不錯的PPT,圖示很好。html
Binomial Distribution的共軛先驗Beta Distribution。less
貝塔分佈的範圍符合色子的每一面的機率理解。dom
同理:函數
Multinomials Distribution的共軛先驗Dirichlet Distribution。spa
Ref: https://docs.scipy.org/doc/numpy/reference/generated/numpy.random.multinomial.htmlcode
>>> np.random.multinomial(20, [1/6.]*6, size=2) # 作size=2次實驗,一次是20次拋投 array([[3, 4, 3, 3, 4, 3], # 第一次實驗的結果:第一面出現了3次,第二面出現了4次,etc. [2, 4, 3, 4, 0, 7]]) # 第二次實驗同理。
無法作圖表示,維度過高了,大於了三維。第三維要留下來表示Pr。htm
Dirichlet分佈能夠看作是分佈之上的分佈。如何理解這句話,咱們能夠先舉個例子:blog
這樣咱們就在思考骰子六面出現機率分佈這樣的分佈之上的分佈。ip
而這樣一個分佈就是Dirichlet分佈。ci
伽瑪函數(Gamma函數),也叫歐拉第二積分,是階乘函數在實數與複數上擴展的一類函數。
與之有密切聯繫的函數是貝塔函數(Beta函數),也叫第一類歐拉積分。能夠用來快速計算同伽馬函數形式相相似的積分。
長得比較詭異。
Ref: https://docs.scipy.org/doc/numpy/reference/generated/numpy.random.dirichlet.html
一個三維的向量,隨機抽取一個。每一維表明一個面的機率。
>>> s = np.random.dirichlet((10, 5, 3), 20) >>> s array([[ 0.52347182, 0.44608268, 0.0304455 ], [ 0.55583862, 0.35281005, 0.09135134], [ 0.49311777, 0.32315067, 0.18373157], [ 0.70968695, 0.22268722, 0.06762583], [ 0.60323203, 0.26006693, 0.13670104], [ 0.69403583, 0.21325088, 0.09271329], [ 0.53413248, 0.23281167, 0.23305585], [ 0.62858314, 0.18519664, 0.18622022], [ 0.52497339, 0.20176998, 0.27325663], [ 0.47283724, 0.39204232, 0.13512045], [ 0.66621238, 0.24627779, 0.08750983], [ 0.43605494, 0.46696468, 0.09698038], [ 0.41539035, 0.37153284, 0.21307682], [ 0.85737303, 0.11670994, 0.02591703], [ 0.53161652, 0.28426861, 0.18411488], [ 0.55155807, 0.16826288, 0.28017905], [ 0.45716724, 0.33973818, 0.20309457], [ 0.45320309, 0.26896615, 0.27783076], [ 0.80522192, 0.10022979, 0.09454829], [ 0.45790405, 0.42998929, 0.11210666]])
可見,參數某個比較大時,會出現一個高的相對穩定的機率峯值。
>>> s = np.random.dirichlet((10, 1, 1), 20) >>> s array([[ 0.8557684 , 0.09807372, 0.04615788], [ 0.83456424, 0.03670665, 0.12872911], [ 0.73520196, 0.2017358 , 0.06306224], [ 0.73759042, 0.18157695, 0.08083263], [ 0.89338746, 0.00237974, 0.1042328 ], [ 0.93393029, 0.01373741, 0.0523323 ], [ 0.96453549, 0.02562915, 0.00983536], [ 0.90688036, 0.02557378, 0.06754587], [ 0.96455728, 0.02084742, 0.01459531], [ 0.82136655, 0.07921894, 0.09941451], [ 0.78585535, 0.00286702, 0.21127763], [ 0.91597604, 0.0276861 , 0.05633787], [ 0.90984927, 0.04313451, 0.04701622], [ 0.81386422, 0.08610383, 0.10003195], [ 0.92675313, 0.06861093, 0.00463594], [ 0.98362761, 0.00299704, 0.01337535], [ 0.90807198, 0.02043488, 0.07149314], [ 0.90418455, 0.07209613, 0.02371932], [ 0.9630694 , 0.00459631, 0.03233429], [ 0.65105053, 0.05350025, 0.29544922]])
阿爾法和小一點,則less peaked:出現了些許不穩定,某一個Pr的壟斷性不是特別強。
>>> s = np.random.dirichlet((5, 1, 1), 20) >>> s array([[ 0.7373676 , 0.17431797, 0.08831443], [ 0.8022481 , 0.02474368, 0.17300822], [ 0.90968516, 0.06022567, 0.03008917], [ 0.9011515 , 0.02337192, 0.07547658], [ 0.98846934, 0.00932316, 0.0022075 ], [ 0.66322211, 0.24058232, 0.09619557], [ 0.86661876, 0.0542239 , 0.07915735], [ 0.48498043, 0.25048716, 0.26453241], [ 0.79705359, 0.16538074, 0.03756567], [ 0.68670999, 0.17210651, 0.1411835 ], [ 0.65227745, 0.20477286, 0.1429497 ], [ 0.73701086, 0.15733187, 0.10565728], [ 0.68017492, 0.04459314, 0.27523195], [ 0.50579841, 0.42922063, 0.06498096], [ 0.71188347, 0.13582756, 0.15228897], [ 0.69952146, 0.08344366, 0.21703488], [ 0.39333132, 0.49440346, 0.11226522], [ 0.47531785, 0.21319548, 0.31148667], [ 0.67575678, 0.25481807, 0.06942515], [ 0.83958139, 0.08429426, 0.07612435]])
共軛,獲得後驗以下: