多项式朴素贝叶斯模型参数最大似然估计(MLE)的完整推导

69 阅读1分钟

以下是多项式朴素贝叶斯模型参数最大似然估计(MLE)的完整推导过程:

1. 似然函数定义

首先明确参数与数据结构:

  • 数据集:包含 mm 个文档的集合 {(x(1),y(1)),...,(x(m),y(m))}\{ (x^{(1)}, y^{(1)}), ..., (x^{(m)}, y^{(m)}) \}
    • x(i)x^{(i)} 表示第 ii 篇文档(含 nin_i 个词汇的序列)
    • xj(i)x_j^{(i)} 表示第 ii 篇文档的第 jj 个词汇
    • y(i)y^{(i)} 为文档类别标签(如1=垃圾邮件,0=非垃圾邮件)
  • 模型参数
    • ϕy=P(y=1)\phi_y = P(y=1):文档属于垃圾邮件的先验概率
    • ϕky=1=P(xj=ky=1)\phi_{k|y=1} = P(x_j=k | y=1):垃圾邮件中出现词典第 kk 个词汇的概率

单篇垃圾邮件文档的概率为词汇概率的乘积: P(x(i)y(i)=1)=j=1niP(xj(i)y(i)=1)=j=1niϕxj(i)y=1P(x^{(i)}|y^{(i)}=1) = \prod_{j=1}^{n_i} P(x_j^{(i)}|y^{(i)}=1) = \prod_{j=1}^{n_i} \phi_{x_j^{(i)}|y=1}

整个数据集的似然函数为各文档概率的乘积: L(ϕ)=i=1mP(x(i),y(i))=i=1mP(x(i)y(i))P(y(i))L(\phi) = \prod_{i=1}^{m} P(x^{(i)}, y^{(i)}) = \prod_{i=1}^{m} P(x^{(i)}|y^{(i)}) P(y^{(i)})


2. 对数似然函数转换

为简化计算,取对数似然函数 (ϕ)=logL(ϕ)\ell(\phi) = \log L(\phi)(ϕ)=i=1mlogP(x(i)y(i))+i=1mlogP(y(i))\ell(\phi) = \sum_{i=1}^{m} \log P(x^{(i)}|y^{(i)}) + \sum_{i=1}^{m} \log P(y^{(i)})

目标为最大化 ϕky=1\phi_{k|y=1} 相关项,只需关注 y(i)=1y^{(i)}=1 的文档: =i=1m1{y(i)=1}j=1nilogϕxj(i)y=1\ell' = \sum_{i=1}^{m} 1\{y^{(i)}=1\} \sum_{j=1}^{n_i} \log \phi_{x_j^{(i)}|y=1}

按词典索引 kk 重组表达式(设 NkN_k 为垃圾邮件中词汇 kk 的总出现次数): =k=1d(i=1m1{y(i)=1}j=1ni1{xj(i)=k}Nk)logϕky=1=k=1dNklogϕky=1\ell' = \sum_{k=1}^{d} \left( \underbrace{ \sum_{i=1}^{m} 1\{y^{(i)}=1\} \sum_{j=1}^{n_i} 1\{x_j^{(i)}=k\} }_{N_k} \right) \log \phi_{k|y=1} = \sum_{k=1}^{d} N_k \log \phi_{k|y=1}


3. 拉格朗日约束优化

在概率归一化约束条件下最大化 \ell'k=1dϕky=1=1\sum_{k=1}^{d} \phi_{k|y=1} = 1

引入拉格朗日乘子 λ\lambda 构建目标函数: L=k=1dNklogϕky=1λ(k=1dϕky=11)\mathcal{L} = \sum_{k=1}^{d} N_k \log \phi_{k|y=1} - \lambda \left( \sum_{k=1}^{d} \phi_{k|y=1} - 1 \right)


4. 求导解参数

对特定参数 ϕvy=1\phi_{v|y=1} 求偏导并令其为零: Lϕvy=1=Nvϕvy=1λ=0Nv=λϕvy=1\frac{\partial \mathcal{L}}{\partial \phi_{v|y=1}} = \frac{N_v}{\phi_{v|y=1}} - \lambda = 0 \quad \Rightarrow \quad N_v = \lambda \phi_{v|y=1}

对全部词汇求和推导 λ\lambdav=1dNv=λv=1dϕvy=1=λ1\sum_{v=1}^{d} N_v = \lambda \sum_{v=1}^{d} \phi_{v|y=1} = \lambda \cdot 1

其中 λ\lambda 表示垃圾邮件总词汇量: λ=v=1dNv=i=1m1{y(i)=1}j=1ni1ni=i=1m1{y(i)=1}ni\lambda = \sum_{v=1}^{d} N_v = \sum_{i=1}^{m} 1\{y^{(i)}=1\} \underbrace{ \sum_{j=1}^{n_i} 1 }_{n_i} = \sum_{i=1}^{m} 1\{y^{(i)}=1\} n_i

代入解得参数估计式: ϕvy=1=Nvλ=i=1mj=1ni1{xj(i)=vy(i)=1}i=1m1{y(i)=1}ni\phi_{v|y=1} = \frac{N_v}{\lambda} = \frac{ \sum_{i=1}^{m} \sum_{j=1}^{n_i} 1\{x_j^{(i)}=v \land y^{(i)}=1\} }{ \sum_{i=1}^{m} 1\{y^{(i)}=1\} n_i }

结论:词汇 vv 在垃圾邮件中的最大似然概率估计,等于其在所有垃圾邮件中的出现总次数除以垃圾邮件的词汇总量。