狄利克雷分布(Dirichlet Distribution)
狄利克雷分布,经常用表示,是关于连续多维变量的概率分布,它以向量为参数,的每个分量都大于0。
狄利克雷分布是贝塔分布的多变量推广,因此,它的另一个名字为 多变量贝塔分布(MBD:multivariate beta distribution)。
如果随机变量满足以(的每个分量都大于0)为参数向量的狄利克雷分布,那么的概率密度函数为:
其中:
归一化常数 为多变量贝塔函数,可以表示为: 。
上面的公式要满足约束条件:
画狄利克雷分布的水平条形图
import numpy as np
import matplotlib.pyplot as plt
rng = np.random.default_rng()
# 狄利克雷分布的alpha参数向量
alpha = (1, 2, 3)
# 抽样的数量
size = 30
sample = rng.dirichlet(alpha, size).transpose()
# 创建水平条形图
plt.barh(range(size), sample[0])
plt.barh(range(size), sample[1], left=sample[0], color='g')
plt.barh(range(size), sample[2], left=sample[0] + sample[1], color='r')
plt.title(f'alpha={alpha}')