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]])
共轭,获得后验以下: