LDA——隐狄利克雷分布

1、二项分布与β\betaβ分布

1.1 二项分布

随机变量XXX可取的值为{0,1}\{0,1\}{0,1},XXX取1的概率为ppp,取0的概率为1−p1-p1p。进行nnn次随机试验,XXX取1的次数为kkk:
P(X=k)=Cnkpk(1−p)n−kP(X=k)=C_{n}^{k}p^{k}(1-p)^{n-k}P(X=k)=Cnkpk(1p)nk

1.2 β\betaβ分布

f(x)=1B(α,β)xα−1(1−x)β−1,x∈[0,1]f(x) = \frac{1}{B(\alpha,\beta)}x^{\alpha-1}(1-x)^{\beta-1},x\in[0,1]f(x)=B(α,β)1xα1(1x)β1,x[0,1]
其中,B(α,β)=Γ(α)Γ(β)Γ(α+β)B(\alpha,\beta)=\frac{\Gamma(\alpha)\Gamma(\beta)}{\Gamma(\alpha+\beta)}B(α,β)=Γ(α+β)Γ(α)Γ(β)
可以看出二项分布和β\betaβ分布形式相同,之前系数不同。

2、共轭分布

  • p(θ)p(\theta)p(θ) 先验分布 不需要知道变量x时,θ的分布律\theta的分布律θ
  • p(θ∣x)p(\theta|x)p(θx) 后验分布 在知道x的情况下,θ的分布律\theta的分布律θ
  • p(x∣θ)p(x|\theta)p(xθ) 似然概率
    根据贝叶斯概率公式有:
    p(θ∣x)=p(x∣θ)∗p(θ)p(x)p(\theta|x) = \frac{p(x|\theta)*p(\theta)}{p(x)}p(θx)=p(x)p(xθ)p(θ)
    p(x)p(x)p(x)与数据的分布有关,当数据确定时,p(x)p(x)p(x)是确定的。
    如果p(θ∣x)p(\theta|x)p(θx)p(θ)p(\theta)p(θ)有相同的分布律。则说先验分布p(θ)p(\theta)p(θ)与后验分布p(θ∣x)p(\theta|x)p(θx)属于似然概率p(x∣θ)p(x|\theta)p(xθ)共轭分布

3. 狄利克雷分布

3.1 多项式分布

随机变量X∈[x1,x2,x3]X\in[x_{1},x_{2},x_{3}]X[x1,x2,x3]XXX取每个值时的概率如下表所示。

Xx1x_{1}x1x2x_{2}x2x3x_{3}x3
Pp1p_{1}p1p2p_{2}p2p3p_{3}p3

在n次实验中,XXX[x1,x2,x3][x_{1},x_{2},x_{3}][x1,x2,x3]的次数分别为[m1,m2,m3](m1+m2+m3=n)[m_{1},m_{2},m_{3}](m_{1}+m_{2}+m_{3}=n)[m1,m2,m3](m1+m2+m3=n),X的分布律为:
P(X)=Cnm1Cn−m1m2Cn−m1−m2m3p1m1p2m2p3m3P(X)=C_{n}^{m_{1}}C_{n-m_{1}}^{m_{2}}C_{n-m_{1}-m_{2}}^{m_{3}}p_{1}^{m_{1}}p_{2}^{m_{2}}p_{3}^{m_{3}}P(X)=Cnm1Cnm1m2Cnm1m2m3p1m1p2m2p3m3
P(X)=n!m1!m2!m3!p1m1p2m2p3m3P(X)=\frac{n!}{m1!m_{2}!m_{3}!}p1^{m1}p_{2}^{m_{2}}p_{3}^{m_{3}}P(X)=m1!m2!m3!n!p1m1p2m2p3m3
由此推广到k维:
P(X)=n!Πi=1Kmi!Πi=1KpimiP(X)=\frac{n!}{\Pi_{i=1}^{K}m_{i}!}\Pi_{i=1}^{K} p_{i}^{mi}P(X)=Πi=1Kmi!n!Πi=1Kpimi
其中nnn是实验的次数,KKKXXX可以取的类别数。Σi=1Kpi=1\Sigma_{i=1}^{K} p_{i}=1Σi=1Kpi=1

3.2 β\betaβ分布推广到狄利克雷分布

三维β\betaβ分布就是狄利克雷分布
f(x)=1B(α,β,γ)p1α−1p2β−1p3γ−1,p1+p2+p3=1f(x) = \frac{1}{B(\alpha,\beta,\gamma)}p_{1}^{\alpha-1}p_{2}^{\beta-1}p_{3}^{\gamma-1},p_{1}+p_{2}+p_{3}=1f(x)=B(α,β,γ)1p1α1p2β1p3γ1,p1+p2+p3=1
其中,B(α,β,γ)=Γ(α)Γ(β)Γ(γ)Γ(α+β+γ)B(\alpha,\beta,\gamma)=\frac{\Gamma(\alpha)\Gamma(\beta)\Gamma(\gamma)}{\Gamma(\alpha+\beta+\gamma)}B(α,β,γ)=Γ(α+β+γ)Γ(α)Γ(β)Γ(γ)
推广到一般形式
f(x)=1B(α→)Πk=1Kpkαk,Σk=1Kpk=1f(x) = \frac{1}{B(\overrightarrow{\alpha})}\Pi_{k=1}^{K}p_{k}^{\alpha_{k}},\Sigma_{k=1}^{K}p_{k}=1f(x)=B(α)1Πk=1Kpkαk,Σk=1Kpk=1
其中,B(α→)=Πk=1KΓ(αk)Γ(Σk=1Kαk)B(\overrightarrow{\alpha})=\frac{\Pi_{k=1}^{K}\Gamma(\alpha_{k})}{\Gamma(\Sigma_{k=1}^{K}\alpha_{k})}B(α)=Γ(Σk=1Kαk)Πk=1KΓ(αk)α→=(α1,α2,...,αk)\overrightarrow{\alpha}=(\alpha_{1},\alpha_{2},...,\alpha_{k})α=(α1,α2,...,αk)

对比多项式的分布形式P(X)=n!Πi=1Kmi!Πi=1KpimiP(X)=\frac{n!}{\Pi_{i=1}^{K}m_{i}!}\Pi_{i=1}^{K} p_{i}^{mi}P(X)=Πi=1Kmi!n!Πi=1Kpimi与狄利克雷分布有相同的表达书形式,所以二者互为共轭分布。

### 使用狄利克雷分布在Python中的应用 在Python中,可以利用`numpy`库随机数生成器模块下的`dirichlet()`方法来模拟狄利克雷分布。此函数接受两个主要参数:一个是形状参数数组(即α向量),另一个是指定抽样次数的整数值。 下面展示了一个简单的例子,说明如何创建服从特定α值集的样本,并通过图形化的方式直观理解这些数据点: ```python import numpy as np from matplotlib import pyplot as plt rng = np.random.default_rng() alpha = (1, 2, 3) # 定义狄利克雷分布的alpha参数向量 size = 30 # 设定抽样的数量 sample = rng.dirichlet(alpha, size).transpose() plt.figure(figsize=(8, 6)) colors = ['b', 'g', 'r'] for i in range(len(sample)): bottom = sum(sample[:i]) if i > 0 else None plt.barh(range(size), sample[i], left=bottom, color=colors[i]) plt.title(f'Dirichlet Distribution with alpha={alpha}') plt.xlabel('Value') plt.ylabel('Sample Index') plt.tight_layout() plt.show() ``` 这段代码首先设置了随机种子以确保结果可重复,接着指定了狄利克雷分布的具体形式——这里选择了三个类别且它们各自的集中度不同;之后进行了多次独立采样并将其转换成适合绘图的形式;最后绘制出了水平堆叠条形图以便观察各个类别的相对比例变化情况[^2]。 对于更复杂的场景比如主题建模,在构建潜在狄利克雷分配(Latent Dirichlet Allocation, LDI/LDA)[^3]时也会频繁涉及到这种多维离散型概率分布的应用。例如,在处理文本分析任务时,可以通过设定合适的超参α控制文档内各话题出现的可能性大小,从而更好地捕捉语料库内部结构特征[^4]。 为了方便开发者快速上手实践LDA算法,社区提供了诸如Gensim这样的第三方工具包支持一键安装依赖环境[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值