多项式概率分布
其由二项分布推广而来,从而更加普遍。所以我们先回顾一下二项分布。
二项分布的典型例子是扔硬币,设硬币正面朝上概率为 p p p, 重复扔 n n n次硬币,记硬币正面朝上的次数为 X X X,显然 X X X是一个随机变量,且服从二项分布,即 X ∼ B ( n , p ) X\sim B(n,p) X∼B(n,p)。
把二项分布推广至两种以上的状态,就得到了多项分布。
比如做一次实验,结果有k种可能,各自的概率为 ( p 1 , … , p k ) (p_1,\ldots ,p_k) (p1,…,pk),同样,重复做n次实验,记各种状态出现的次数为 ( X 1 , … , X k ) (X_1,\ldots ,X_k) (X1,…,Xk),显然,这些都是随机变量,且服从多项分布,即 ( X 1 , … , X k ) ∼ P N ( n : p 1 , … , p k ) (X_1,\ldots ,X_k)\sim PN(n:p_1,\ldots ,p_k) (X1,…,Xk)∼PN(n:p1,…,pk),显然有关系: X 1 + … + X k = n X_1+\ldots +X_k=n X1+…+Xk=n,另外,其中PN即poly nomial的意思,也是多项式的意思。
python实战:
import torch
p=torch.tensor([0.2,0.1,0.7])
torch.multinomial(p,2,replacement=True)#表示进行两次重复实验,各个状态的概率分布是p
我们重复运行两次,得到如下结果:
上面表示第一次得到了0.2概率的那个状态,第二次得到了0.7概率的那个状态。下面这个同样分析。
分类分布
分类分布(categorical distribution)好简单,就是多项式概率分布的特殊情况,即n=1的时候;另外一个观点就是扩展了的两点分布,也即扩展了的伯努利分布。
import torch
p=torch.tensor([0.2,0.1,0.7])
torch.multinomial(p,1,replacement=True)#取n=1就是分类分布。
或者,torch里面有一个专门的分类分布,有兴趣可以看看。
cdis=tdc.Categorical(torch.tensor([0.2,0.1,0.7]))
cdis.sample()