《机器学习数学基础》补充资料:贝叶斯分类器

打印 上一主题 下一主题

主题 989|帖子 989|积分 2967

在《机器学习数学基础》中,有专门讲解贝叶斯定理的章节,在此就不对此定理的具体内容进行论述,下面仅列出定理的表达式:
贝叶斯定理

定理: 假如变乱                                              A                            1                                  ,                                   A                            2                                  ,                         ⋯                          ,                                   A                            n                                       A_1,A_2,\cdots,A_n                  A1​,A2​,⋯,An​ 互不相容,                                    B                         ⊂                                   ∪                                       j                               =                               1                                      n                                            A                            j                                       B\subset\cup_{j=1}^nA_j                  B⊂∪j=1n​Aj​ ,则                                    P                         (                         B                         )                         >                         0                              P(B)\gt0                  P(B)>0 时,有:
                                                                                                     P                                        (                                                       A                                           j                                                      ∣                                        B                                        )                                        =                                                                       P                                              (                                                               A                                                 j                                                              )                                              P                                              (                                              B                                              ∣                                                               A                                                 j                                                              )                                                                                           ∑                                                                   i                                                    =                                                    1                                                                  n                                                              P                                              (                                                               A                                                 i                                                              )                                              P                                              (                                              B                                              ∣                                                               A                                                 i                                                              )                                                                                                                      (1)                                                       \displaystyle{P(A_j|B)=\frac{P(A_j)P(B|A_j)}{\sum_{i=1}^nP(A_i)P(B|A_i)}}\tag{1}                     P(Aj​∣B)=∑i=1n​P(Ai​)P(B∣Ai​)P(Aj​)P(B∣Aj​)​(1)
其中                                    1                         ≤                         j                         ≤                         n                              1\le j\le n                  1≤j≤n 。
对于分类问题,假设有                                    K                              K                  K 种类别标签,即                                    Y                         =                         {                                   c                            1                                  ,                                   c                            2                                  ,                         ⋯                          ,                                   c                            K                                  }                              {\cal{Y}}=\{c_1,c_2,\cdots,c_K\}                  Y={c1​,c2​,⋯,cK​} (对应于(1)式中的互不相容的变乱                                              A                            j                                       A_j                  Aj​ )。对于样本                                              x                                       \pmb{x}                  x ,要计算                                    P                         (                                   c                            j                                  ∣                                   x                                  )                              P(c_j|\pmb{x})                  P(cj​∣x) ,根据(1)式,有:
                                                                                       P                                     (                                                   c                                        j                                                  ∣                                                   x                                                  )                                     =                                                                  P                                           (                                                           c                                              j                                                          )                                           P                                           (                                                           x                                                          ∣                                                           c                                              j                                                          )                                                                     P                                           (                                                           x                                                          )                                                                                                       (2)                                                       P(c_j|\pmb{x})=\frac{P(c_j)P(\pmb{x}|c_j)}{P(\pmb{x})}\tag{2}                     P(cj​∣x)=P(x)P(cj​)P(x∣cj​)​(2)
其中:


  •                                               P                               (                                           c                                  j                                          )                                      P(c_j)                        P(cj​) 是先验概率。当训练集中包含充足的独立同分布样本时,可以用各类样本出现的频率估计此概率。
  •                                               P                               (                                           x                                          ∣                                           c                                  j                                          )                                      P(\pmb{x}|c_j)                        P(x∣cj​) 是样本                                                          x                                                 \pmb{x}                        x 相对类别                                                          c                                  j                                                 c_j                        cj​ 的条件概率,称为“似然”。
    注意: 有的资料中以为                                              P                               (                                           x                                          ∣                                           c                                  j                                          )                                      P(\pmb{x}|c_j)                        P(x∣cj​) 可以用频率来估计                                                                                 [                                     2                                     ]                                                             ^{[2]}                        [2] ,实则不然,参考资料 [3] 中对这个问题的完整分析。假设样本有                                              d                                      d                        d 个特性,并且都是二值类型的数据,那么样本空间所有大概取值为                                                          2                                  d                                                 2^d                        2d 个。在现实应用中,这个值每每远大于训练集的样本数。也就是,很多样本取值在训练集中根本没有出现。“未被观测到”与“出现概率为零”通常是差别的,以是,不能用频率来估计概率                                              P                               (                                           x                                          ∣                                           c                                  j                                          )                                      P(\pmb{x}|c_j)                        P(x∣cj​) 。
    假如从概率的角度来看,得到的训练集样本都具有随机性,假如要可以或许用频率估计概率,必须满足样本与总体是同分布的。但是,在样本数不是很充足的时候,就不能满足。以是,对于似然,不能用频率来估计。
  •                                               P                               (                                           x                                          )                                      P(\pmb{x})                        P(x) 与类别无关,对于一个训练集而言,它是一个常量。从(1)式中,分母对一个试验而言,是一个常量。以是,(2)式可以转化为:
                                                                                                             P                                           (                                                           c                                              j                                                          ∣                                                           x                                                          )                                           ∝               ⁣                             P                                           (                                                           c                                              j                                                          )                                           P                                           (                                                           x                                                          ∣                                                           c                                              j                                                          )                                                                                          (3)                                                                   P(c_j|\pmb{x})\propto\!P(c_j)P(\pmb{x}|c_j)\tag{3}                           P(cj​∣x)∝P(cj​)P(x∣cj​)(3)
    由此可以,假如可以或许得到似然                                              P                               (                                           x                                          ∣                                           c                                  j                                          )                                      P(\pmb{x}|c_j)                        P(x∣cj​) 的值,就可以根据(3)式得到后验概率                                              P                               (                                           c                                  j                                          ∣                                           x                                          )                                      P(c_j|\pmb{x})                        P(cj​∣x) 的值,从而可以或许判断出样本所属的类别。
怎样计算(3)式中的似然                                    P                         (                                   x                                  ∣                                   c                            j                                  )                              P(\pmb{x}|c_j)                  P(x∣cj​) ,一种常用方法就是最大似然估计。
最大似然估计

在《机器学习数学基础》第6.2.1节,专门讲解了最大似然估计,这里使用其中的结论。
按照如下步骤计算                                    P                         (                                   x                                  ∣                                   c                            j                                  )                              P(\pmb{x}|c_j)                  P(x∣cj​) :

  • 假设样本数据独立同分布,且为某种概率分布,但是不知道此概率分布的参数。
  • 根据训练集样本数据,对概率分布的参数进行估计。假设                                         P                            (                                       x                                      ∣                                       c                               j                                      )                                  P(\pmb{x}|c_j)                     P(x∣cj​) 的概率分布的参数向量是                                                    θ                                            \pmb{\theta}                     θ
根据参考资料 [1] 中的结论,可以得到如下似然:
                                                                                       L                                     (                                                                  X                                                                     c                                           j                                                                ∣                                                   θ                                                  )                                     =                                                   ∏                                                                       x                                                          ∈                                                                            X                                                                               c                                                 j                                                                                               P                                     (                                                   x                                                  ∣                                                   θ                                                  )                                                                            (4)                                                       L(\pmb{X}_{c_j}|\pmb{\theta})=\prod_{\pmb{x}\in\pmb{X}_{c_j}}P(\pmb{x}|\pmb{\theta})\tag{4}                     L(Xcj​​∣θ)=x∈Xcj​​∏​P(x∣θ)(4)
其中:                                                        X                                                 c                               j                                                 \pmb{X}_{c_j}                  Xcj​​ 是数据集中类别为                                              c                            j                                       c_j                  cj​ 的样本集合。
在具体计算的时候,可以对(4)式取对数。例如参考资料 [1] 的358页中给出了对于数据符合正态分布的参数                                    μ                              \mu                  μ 和                                              σ                            2                                       \sigma^2                  σ2 (总体均值和方差)的估计。
设总体                                    X                         ∼                         N                         (                         μ                         ,                                   σ                            2                                  )                              X \sim N(\mu,\sigma^2)                  X∼N(μ,σ2) (正态分布),                                   μ                         、                                   σ                            2                                       \mu、\sigma^2                  μ、σ2 是未知参数,                                             x                            1                                  ,                         ⋯                          ,                                   x                            n                                       x_1,\cdots,x_n                  x1​,⋯,xn​ 是来自                                    X                              X                  X 的样本值,求                                    μ                         、                                   σ                            2                                       \mu、\sigma^2                  μ、σ2 的最大似然估计值。

  • 写出                                              X                                      X                        X 的概率密度函数:                                             f                               (                               x                               ;                               μ                               ,                                           σ                                  2                                          )                               =                                           1                                               σ                                                                  2                                           π                                                                                 exp                               ⁡                                           (                                  −                                               1                                                   2                                                       σ                                           2                                                                         (                                  x                                  −                                  μ                                               )                                     2                                              )                                                 f(x;\mu, \sigma^2) = \frac{1}{\sigma\sqrt{2\pi}}\exp\left(-\frac{1}{2\sigma^2}(x-\mu)^2\right)                        f(x;μ,σ2)=σ2π                      ​1​exp(−2σ21​(x−μ)2)
  • 写出似然函数(4)式:
                                                       L                                  =                                               ∏                                                   i                                        =                                        1                                                  n                                                           1                                                   σ                                                                       2                                              π                                                                                        exp                                  ⁡                                               (                                     −                                                   1                                                       2                                                           σ                                              2                                                                               (                                                   x                                        i                                                  −                                     μ                                                   )                                        2                                                  )                                              =                                  (                                  2                                  π                                               )                                                   −                                                       n                                           2                                                                         (                                               σ                                     2                                                           )                                                   −                                                       n                                           2                                                                         exp                                  ⁡                                               (                                     −                                                   1                                                       2                                                           σ                                              2                                                                                             ∑                                                       i                                           =                                           1                                                      n                                                  (                                                   x                                        i                                                  −                                     μ                                                   )                                        2                                                  )                                                      L = \prod_{i=1}^n\frac{1}{\sigma\sqrt{2\pi}}\exp\left(-\frac{1}{2\sigma^2}(x_i-\mu)^2\right)=(2\pi)^{-\frac{n}{2}}(\sigma^2)^{-\frac{n}{2}}\exp\left(-\frac{1}{2\sigma^2}\sum_{i=1}^n(x_i-\mu)^2\right)                           L=i=1∏n​σ2π                      ​1​exp(−2σ21​(xi​−μ)2)=(2π)−2n​(σ2)−2n​exp(−2σ21​i=1∑n​(xi​−μ)2)
  • 对上式取对数
                                                       log                                  ⁡                                  L                                  =                                  −                                               n                                     2                                              log                                  ⁡                                  (                                  2                                  π                                  )                                  −                                               n                                     2                                              log                                  ⁡                                               σ                                     2                                              −                                               1                                                   2                                                       σ                                           2                                                                                      ∑                                                   i                                        =                                        1                                                  n                                              (                                               x                                     i                                              −                                  μ                                               )                                     2                                                      \log L = -\frac{n}{2}\log(2\pi) - \frac{n}{2}\log\sigma^2-\frac{1}{2\sigma^2}\sum_{i=1}^n(x_i-\mu)^2                           logL=−2n​log(2π)−2n​logσ2−2σ21​i=1∑n​(xi​−μ)2
  • 将                                              log                               ⁡                               L                                      \log L                        logL 分别对                                              μ                                      \mu                        μ 和                                                          σ                                  2                                                 \sigma^2                        σ2 求偏导数,并令其为                                              0                                      0                        0 (注意,                                                         σ                                  2                                                 \sigma^2                        σ2 视作一个团体)
                                                       {                                                                                                                               ∂                                                                       ∂                                                       μ                                                                                    log                                                 ⁡                                                 L                                                                                                                                     =                                                                   1                                                                       σ                                                       2                                                                                    (                                                                   ∑                                                                       i                                                       =                                                       1                                                                      n                                                                                    x                                                    i                                                                  −                                                 n                                                 μ                                                 )                                                 =                                                 0                                                                                                                                                                               ∂                                                                       ∂                                                                           σ                                                          2                                                                                                       log                                                 ⁡                                                 L                                                                                                                                     =                                                 −                                                                   n                                                                       2                                                                           σ                                                          2                                                                                                       +                                                                   1                                                                       2                                                       (                                                                           σ                                                          2                                                                                              )                                                          2                                                                                                                         ∑                                                                       i                                                       =                                                       1                                                                      n                                                                  (                                                                   x                                                    i                                                                  −                                                 μ                                                                   )                                                    2                                                                  =                                                 0                                                                                                                \begin{cases}\frac{\partial}{\partial \mu}\log L &= \frac{1}{\sigma^2}(\sum_{i=1}^nx_i - n\mu)=0 \\ \frac{\partial}{\partial\sigma^2}\log L &= -\frac{n}{2\sigma^2}+ \frac{1}{2(\sigma^2)^2}\sum_{i=1}^n(x_i-\mu)^2=0 \end{cases}                           {∂μ∂​logL∂σ2∂​logL​=σ21​(∑i=1n​xi​−nμ)=0=−2σ2n​+2(σ2)21​∑i=1n​(xi​−μ)2=0​
  • 解方程组,分别得到                                              μ                                      \mu                        μ 和                                                          σ                                  2                                                 \sigma^2                        σ2 的极大似然估计
                                                                                                                                  μ                                                 ^                                                                                                                                                     =                                                                   1                                                    n                                                                                    ∑                                                                       i                                                       =                                                       1                                                                      n                                                                                    x                                                    i                                                                  =                                                                   x                                                    ‾                                                                                                                                                                                                σ                                                    ^                                                                  2                                                                                                                                                     =                                                                   1                                                    n                                                                                    ∑                                                                       i                                                       =                                                       1                                                                      n                                                                  (                                                                   x                                                    i                                                                  −                                                                   x                                                    ‾                                                                                    )                                                    2                                                                                                                                    (                                  5                                  )                                          \begin{split}\hat\mu &= \frac{1}{n}\sum_{i=1}^nx_i=\overline x \\ \hat\sigma^2 &= \frac{1}{n}\sum_{i=1}^n(x_i-\overline x)^2\end{split}\quad(5)                           μ^​σ^2​=n1​i=1∑n​xi​=x=n1​i=1∑n​(xi​−x)2​(5)
在《机器学习数学基础》中还以预测足球队比赛胜败概率为例,详细先容了最大似然估计的应用。请参阅。
朴素贝叶斯分类器

假如进一步假设“特性相互独立”,即每个特性独立地对分类结果产生影响。
假设一个样本                                              x                                       \pmb{x}                  x 有                                    d                              d                  d 个特性,即:                                              x                                  =                         [                                   x                            1                                  ,                                   x                            2                                  ,                         ⋯                          ,                                   x                            d                                  ]                              \pmb{x}=[x_1,x_2,\cdots,x_d]                  x=[x1​,x2​,⋯,xd​] ,则条件概率为:
                                                                                                          P                                           (                                                           x                                                          ∣                                                           c                                              j                                                          )                                                                                                                                 =                                           P                                           (                                                           x                                              1                                                          ,                                                           x                                              2                                                          ,                                           ⋯                                            ,                                                           x                                              d                                                          ∣                                                           c                                              j                                                          )                                                                                                                                                                                                                =                                                           ∏                                                               i                                                 =                                                 1                                                              d                                                          P                                           (                                                           x                                              i                                                          ∣                                                           c                                              j                                                          )                                           ,                                                                                       (                                           j                                           =                                           1                                           ,                                           ⋯                                            ,                                           n                                           )                                                                                                 (                            6                            )                                  \begin{split} P(\pmb{x}|c_j)&=P(x_1,x_2,\cdots,x_d|c_j) \\&=\prod_{i=1}^dP(x_i|c_j),~(j=1,\cdots,n) \end{split}\quad(6)                     P(x∣cj​)​=P(x1​,x2​,⋯,xd​∣cj​)=i=1∏d​P(xi​∣cj​), (j=1,⋯,n)​(6)
将(6)式代入到(2)式,则:
                                                                                       P                                     (                                                   c                                        j                                                  ∣                                                   x                                                  )                                     =                                                                  P                                           (                                                           c                                              j                                                          )                                           P                                           (                                                           x                                                          ∣                                                           c                                              j                                                          )                                                                     P                                           (                                                           x                                                          )                                                                =                                                                  P                                           (                                                           c                                              j                                                          )                                                                     P                                           (                                                           x                                                          )                                                                              ∏                                                       i                                           =                                           1                                                      d                                                  P                                     (                                                   x                                        i                                                  ∣                                                   c                                        j                                                  )                                                                            (7)                                                       P(c_j|\pmb{x})=\frac{P(c_j)P(\pmb{x}|c_j)}{P(\pmb{x})}=\frac{P(c_j)}{P(\pmb{x})}\prod_{i=1}^dP(x_i|c_j)\tag{7}                     P(cj​∣x)=P(x)P(cj​)P(x∣cj​)​=P(x)P(cj​)​i=1∏d​P(xi​∣cj​)(7)


  • 对于(7)式中的先验概率                                              P                               (                                           c                                  j                                          )                                      P(c_j)                        P(cj​) ,按照之前所讲,可以用该类别样本数量占全体数据集样本数量标比例来估计,即用频率估计概率,用下面的方式表示:
  •                                                                                                          P                                           (                                                           c                                              j                                                          )                                           =                                                           1                                              K                                                                          ∑                                                               i                                                 =                                                 1                                                              K                                                          I                                           (                                                           y                                              i                                                          =                                                           c                                              j                                                          )                                           ,                                                                                       (                                           j                                           =                                           1                                           ,                                           2                                           ⋯                                            ,                                           n                                           )                                                                                          (8)                                                                   P(c_j)=\frac{1}{K}\sum_{i=1}^KI(y_i=c_j),~(j=1,2\cdots,n)\tag{8}                           P(cj​)=K1​i=1∑K​I(yi​=cj​), (j=1,2⋯,n)(8)
    其中                                              I                               (                               ⋅                               )                                      I(\cdot)                        I(⋅) 表示函数:                                                                      I                                     =                                                   {                                                                                                                                                                                                            1                                                       ,                                                       (                                                       y                                                       =                                                       c                                                       )                                                                                                                                                                                                                                                                  0                                                       ,                                                       (                                                       o                                                       t                                                       h                                                       e                                                       r                                                       s                                                       )                                                                                                                                                          \displaystyle{I=\begin{cases}&1,(y=c)\\&0,(others)\end{cases}}                        I={​1,(y=c)0,(others)​ 。
  • 对于                                                          ∏                                               i                                     =                                     1                                              d                                          P                               (                                           x                                  i                                          ∣                                           c                                  j                                          )                                      \prod_{i=1}^dP(x_i|c_j)                        ∏i=1d​P(xi​∣cj​) ,则是利用(4)式的最大似然估计计算。针对差别的概率分布,分别有差别的计算结果。
高斯朴素贝叶斯分类器

即特性的条件概率分布满足高斯分布:
                                                                                       p                                     (                                                   x                                        i                                                  ∣                                                   c                                        j                                                  )                                     =                                                   1                                                                       2                                              π                                                               σ                                                 j                                                 2                                                                                               exp                                                   (                                        −                                                                       (                                                               x                                                 i                                                              −                                                               μ                                                 j                                                                               )                                                 2                                                                                          2                                                               σ                                                 j                                                 2                                                                                     )                                                                                         (9)                                                       p(x_i|c_j)=\frac{1}{\sqrt{2\pi\sigma^2_j}}\text{exp}\left(-\frac{(x_i-\mu_j)^2}{2\sigma^2_j}\right)\tag{9}                     p(xi​∣cj​)=2πσj2​                    ​1​exp(−2σj2​(xi​−μj​)2​)(9)
伯努利朴素贝叶斯分类器

即特性的条件概率分布满足伯努利分布:
                                                                                       P                                     (                                                   x                                        i                                                  ∣                                                   c                                        j                                                  )                                     =                                     p                                                   x                                        i                                                  +                                     (                                     1                                     −                                     p                                     )                                     (                                     1                                     −                                                   x                                        i                                                  )                                     ,                                                                           (                                     其中                                     :                                     p                                     =                                     P                                     (                                                   x                                        i                                                  =                                     1                                     ∣                                                   c                                        j                                                  )                                     ,                                                   x                                        i                                                  ∈                                     {                                     0                                     ,                                     1                                     }                                     )                                                                            (10)                                                       P(x_i|c_j)=px_i+(1-p)(1-x_i),~(其中:p=P(x_i=1|c_j),x_i\in\{0,1\})\tag{10}                     P(xi​∣cj​)=pxi​+(1−p)(1−xi​), (其中:p=P(xi​=1∣cj​),xi​∈{0,1})(10)
对(8)式和(9)式,利用最大似然估计,均可以估计到其中的参数,从而得到条件概率                                    P                         (                                   x                            i                                  ∣                                   c                            j                                  )                              P(x_i|c_j)                  P(xi​∣cj​) ,最大似然估计的方法见参考资料 [1] 。
最大后验估计                                                                 [                               1                               ]                                                 ^{[1]}                  [1]

前面用最大似然估计,可以或许计算出条件概率,在利用(2)式,得到后验概率。这种方法,背后隐蔽着一个根本观点,即以为分布的总体参数固然未知,但是它是客观存在的一个固定值,因此可以通过优化似然函数得到。这就是所谓的频率主义学派的观点。
别的,还有别的一种观点,把参数也看成随机变量,它们也有肯定的分布。于是就可以假定参数服从某种分布,即所谓先验分布。然后基于观测到的数据,计算参数的后验分布。并且得到的数据越多,后验分布可以得到不停的修正。持这种观点的人,也形成了一个学派,就是贝叶斯统计学。
贝叶斯学派强调“观察者”所把握的知识(即对被观察对象的熟悉)。假如“观察者”知识完备,则能准确而唯一的判断变乱的结果,不须要概率。
对于先验分布,假设为参数                                              θ                            1                                  ,                         ⋯                          ,                                   θ                            k                                       \theta_1,\cdots,\theta_k                  θ1​,⋯,θk​ ,在已有的熟悉中,这些参数具有某种规律,设概率密度函数为                                    g                         (                                   θ                            1                                  ,                         ⋯                          ,                                   θ                            k                                  )                              g(\theta_1,\cdots,\theta_k)                  g(θ1​,⋯,θk​) (简写为                                    g                         (                                   θ                                  )                              g(\pmb{\theta})                  g(θ) 。此处以连续型分布为例,假如是离散型,可记作                                    p                         (                                   θ                            1                                  ,                         ⋯                          ,                                   θ                            k                                  )                              p(\theta_1, \cdots, \theta_k)                  p(θ1​,⋯,θk​) )。
先验分布                                    g                         (                                   θ                            1                                  ,                         ⋯                          ,                                   θ                            k                                  )                              g(\theta_1,\cdots,\theta_k)                  g(θ1​,⋯,θk​) 中的参数也是未知的(或部分未知)——这就是知识不完备。为了能准确判断,还须要联合观测数据得到的知识,也就是似然函数                                    f                         (                                   x                            1                                  ,                         ⋯                          ,                                   x                            n                                  ∣                                   θ                            1                                  ,                         ⋯                          ,                                   θ                            k                                  )                              f(x_1,\cdots,x_n|\theta_1,\cdots,\theta_k)                  f(x1​,⋯,xn​∣θ1​,⋯,θk​) ,简写作                                    f                         (                                   x                                  ∣                                   θ                                  )                              f(\pmb{x}|\pmb{\theta})                  f(x∣θ)(假如是离散型,则可写作                                    p                         (                                   x                            1                                  ,                         ⋯                          ,                                   x                            n                                  ∣                                   θ                            1                                  ,                         ⋯                          ,                                   θ                            k                                  )                              p(x_1,\cdots,x_n | \theta_1,\cdots,\theta_k)                  p(x1​,⋯,xn​∣θ1​,⋯,θk​) )。
然后将先验分布和似然函数,根据(1)式的贝叶斯定理,可得:
                                                                           ⁣                         f                                     (                                                   θ                                                  ∣                                                   x                                                  )                                     =                                                                  f                                           (                                                           x                                                          ∣                                                           θ                                                          )                                           g                                           (                                                           θ                                                          )                                                                                     ∫                                                               Θ                                                                          f                                           (                                                           x                                                          ∣                                           θ                                           )                                           g                                           (                                                           θ                                                          )                                           d                                                           θ                                                                                                                      (11)                                                       \displaystyle\!f(\pmb{\theta}|\pmb{x}) = \frac{f(\pmb{x}|\pmb{\theta})g(\pmb{\theta})}{\int_{\pmb{\Theta}}f(\pmb{x}|\boldsymbol{\theta})g(\pmb{\theta})d\pmb{\theta}} \tag{11}                     f(θ∣x)=∫Θ​f(x∣θ)g(θ)dθf(x∣θ)g(θ)​(11)


  •                                         f                            (                                       θ                                      ∣                                       x                                      )                                  f(\pmb{\theta}|\pmb{x})                     f(θ∣x) 就是后验概率后验分布——“试验之后”。
  •                                                    Θ                                            \pmb{\Theta}                     Θ 是                                         g                            (                                       θ                                      )                                  g(\pmb{\theta})                     g(θ) 的值域,且                                                    θ                                      ∈                                       Θ                                            \pmb\theta \in \pmb\Theta                     θ∈Θ 。分母                                                    ∫                                           Θ                                                 f                            (                                       x                                      ∣                                       θ                                      )                            g                            (                                       θ                                      )                            d                                       θ                                      =                            p                            (                                       x                                      )                                  \int_{\pmb\Theta}f(\pmb{x}|\pmb\theta)g(\pmb\theta)d\pmb\theta = p(\pmb{x})                     ∫Θ​f(x∣θ)g(θ)dθ=p(x) ,是观测到的数据的边缘分布,与                                                    θ                                            \pmb\theta                     θ 无关,在此相称于一个常数,故:
                                                                                       f                                     (                                                   θ                                                  ∣                                                   x                                                  )                                     ∝                                     f                                     (                                                   x                                                  ∣                                                   θ                                                  )                                     g                                     (                                                   θ                                                  )                                                                            (12)                                                       f(\pmb\theta|\pmb{x}) \propto f(\pmb{x}|\pmb\theta)g(\pmb\theta)\tag{12}                     f(θ∣x)∝f(x∣θ)g(θ)(12)
在(10)式中,似然函数                                    f                         (                                   x                                  ∣                                   θ                                  )                              f(\pmb{x}|\pmb\theta)                  f(x∣θ) 的函数形式可以根据观测数据确定(注意,参数                                              θ                                       \pmb\theta                  θ 未知),
那么先验分布                                    g                         (                                   θ                                  )                              g(\pmb\theta)                  g(θ) 的形式应该怎样确定?
在贝叶斯统计学中,假如先验分布                                    g                         (                                   θ                                  )                              g(\pmb\theta)                  g(θ) 和后验分布                                    f                         (                                   θ                                  ∣                                   x                                  )                              f(\pmb\theta|\pmb{x})                  f(θ∣x) 为同种类型的分布,称它们为共轭分布(conjugate distributions),此时的先验分布称为似然函数                                    f                         (                                   x                                  ∣                                   θ                                  )                              f(\pmb{x}|\pmb\theta)                  f(x∣θ) 的共轭先验(conjugate prior)。
显然,要对后验分布                                    f                         (                                   θ                                  ∣                                   x                                  )                              f(\pmb\theta|\pmb{x})                  f(θ∣x) 求最大值。依据(12)式,进而计算                                    f                         (                                   x                                  ∣                                   θ                                  )                         g                         (                                   θ                                  )                              f(\pmb{x}|\pmb\theta)g(\pmb\theta)                  f(x∣θ)g(θ) 的最大值,终极得到估计量                                                         θ                                      ^                                       \hat{\pmb\theta}                  θ^ 。
                                                                                       a                                     r                                     g                                                                  max                                           ⁡                                                                                     θ                                              1                                                          ,                                           ⋯                                            ,                                                           θ                                              k                                                                               f                                     (                                                   θ                                        1                                                  ,                                     ⋯                                      ,                                                   θ                                        k                                                  ∣                                                   x                                        1                                                  ,                                     ⋯                                      ,                                                   x                                        n                                                  )                                     ∝                                     a                                     r                                     g                                                                  max                                           ⁡                                                                                     θ                                              1                                                          ,                                           ⋯                                            ,                                                           θ                                              k                                                                               f                                     (                                                   x                                        1                                                  ,                                     ⋯                                      ,                                                   x                                        n                                                  ∣                                                   θ                                        1                                                  ,                                     ⋯                                      ,                                                   θ                                        k                                                  )                                     g                                     (                                                   θ                                        1                                                  ,                                     ⋯                                      ,                                                   θ                                        k                                                  )                                                                            (13)                                                       arg\max_{\theta_1,\cdots, \theta_k} f(\theta_1,\cdots,\theta_k|x_1,\cdots,x_n) \propto arg\max_{\theta_1,\cdots,\theta_k} f(x_1,\cdots,x_n|\theta_1,\cdots,\theta_k)g(\theta_1,\cdots,\theta_k)\tag{13}                     argθ1​,⋯,θk​max​f(θ1​,⋯,θk​∣x1​,⋯,xn​)∝argθ1​,⋯,θk​max​f(x1​,⋯,xn​∣θ1​,⋯,θk​)g(θ1​,⋯,θk​)(13)
对上式右侧取对数:
                                                                                                                                                              a                                        r                                        g                                                                       max                                              ⁡                                                                                           θ                                                 1                                                              ,                                              ⋯                                               ,                                                               θ                                                 k                                                                                     log                                        ⁡                                                       ∏                                                           i                                              =                                              1                                                          n                                                      f                                        (                                                       x                                           i                                                      ∣                                                       θ                                           1                                                      ,                                        ⋯                                         ,                                                       θ                                           k                                                      )                                        +                                        log                                        ⁡                                        (                                        g                                        (                                                       θ                                           1                                                      ,                                        ⋯                                         ,                                                       θ                                           k                                                      )                                        )                                                                                                              =                                                                                                          a                                        r                                        g                                                                       max                                              ⁡                                                                                           θ                                                 1                                                              ,                                              ⋯                                               ,                                                               θ                                                 k                                                                                                    ∑                                                           i                                              =                                              1                                                          n                                                      (                                        log                                        ⁡                                        f                                        (                                                       x                                           i                                                      ∣                                                       θ                                           1                                                      ,                                        ⋯                                         ,                                                       θ                                           k                                                      )                                        )                                        +                                        log                                        ⁡                                        (                                        g                                        (                                                       θ                                           1                                                      ,                                        ⋯                                         ,                                                       θ                                           k                                                      )                                        )                                                                                \begin{split}& arg\max_{\theta_1,\cdots,\theta_k} \log\prod_{i=1}^nf(x_i|\theta_1,\cdots,\theta_k)+\log(g(\theta_1,\cdots,\theta_k))\\ = & arg \max_{\theta_1,\cdots,\theta_k}\sum_{i=1}^n(\log f(x_i|\theta_1,\cdots,\theta_k)) + \log(g(\theta_1,\cdots,\theta_k))\end{split}                     =​argθ1​,⋯,θk​max​logi=1∏n​f(xi​∣θ1​,⋯,θk​)+log(g(θ1​,⋯,θk​))argθ1​,⋯,θk​max​i=1∑n​(logf(xi​∣θ1​,⋯,θk​))+log(g(θ1​,⋯,θk​))​
这样,通过计算上式的最大值,就得到了参数的估计量                                                                     θ                                          ^                                                 M                               A                               P                                                 \hat{\pmb\theta}_{MAP}                  θ^MAP​ ,这个估计方法称为最大后验估计(maximum a posteriori estimation,MAP)。
不丢脸出,                                                         a                               r                               g                                                        max                                     ⁡                                                                         θ                                        1                                                  ,                                     ⋯                                      ,                                                   θ                                        k                                                                               ∑                                               i                                     =                                     1                                              n                                          (                               log                               ⁡                               f                               (                                           x                                  i                                          ∣                                           θ                                  1                                          ,                               ⋯                                ,                                           θ                                  k                                          )                               )                                                 \displaystyle{arg\max_{\theta_1,\cdots,\theta_k}\sum_{i=1}^n(\log f(x_i|\theta_1,\cdots,\theta_k))}                  argθ1​,⋯,θk​max​i=1∑n​(logf(xi​∣θ1​,⋯,θk​)) 就是最大似然的估计量                                                                     θ                                          ^                                                 M                               L                               E                                                 \hat{\pmb\theta}_{MLE}                  θ^MLE​ 。以是,我们可以说,                                   log                         ⁡                         g                         (                                   θ                                  )                              \log g(\pmb\theta)                  logg(θ) 就是对                                                                     θ                                          ^                                                 M                               L                               E                                                 \hat{\pmb\theta}_{MLE}                  θ^MLE​ 增长的正则项,此修正来自于我们的主观熟悉。注意一种特别环境,假如先验分布式均匀分布,例如                                    g                         (                         θ                         )                         =                         0.8                              g(\theta) = 0.8                  g(θ)=0.8 ,那么最大后验估计就退化为最大似然估计了。
下面使用参考资料 [1] 中已经证明的一个结论:
二项分布                                    p                         (                         x                         ∣                         θ                         )                         =                                   (                                                                              n                                                                                                          x                                                                          )                                            θ                            x                                  (                         1                         −                         θ                                   )                                       n                               −                               x                                                 p(x|\theta)=\begin{pmatrix}n\\x\end{pmatrix}\theta^x(1-\theta)^{n-x}                  p(x∣θ)=(nx​)θx(1−θ)n−x 的共轭服从                                    B                              \text{B}                  B 分布(Beta 分布),即:
                                                                                       g                                     (                                     θ                                     )                                     =                                     p                                     (                                     θ                                     )                                     =                                     B                                     (                                     α                                     ,                                     β                                     )                                     =                                                                  Γ                                           (                                           α                                           +                                           β                                           )                                                                     Γ                                           (                                           α                                           )                                           Γ                                           (                                           β                                           )                                                                              θ                                                       α                                           −                                           1                                                                (                                     1                                     −                                     θ                                                   )                                                       β                                           −                                           1                                                                                                       (14)                                                       g(\theta)=p(\theta) = \text{B}(\alpha, \beta)= \frac{\Gamma(\alpha+\beta)}{\Gamma(\alpha)\Gamma(\beta)}\theta^{\alpha-1}(1-\theta)^{\beta-1}\tag{14}                     g(θ)=p(θ)=B(α,β)=Γ(α)Γ(β)Γ(α+β)​θα−1(1−θ)β−1(14)
其中                                    Γ                         (                         ⋅                         )                              \Gamma(\cdot)                  Γ(⋅) 是 Gamma 函数(                                    Γ                         (                         n                         )                         =                         (                         n                         −                         1                         )                         !                              \Gamma(n) = (n-1)!                  Γ(n)=(n−1)! ),                                   α                              \alpha                  α 和                                    β                              \beta                  β 是与样本无关的超参数。
并得到:
                                                                                       p                                     (                                     θ                                     ∣                                     x                                     )                                     ∝                                     B                                     (                                     x                                     +                                     α                                     ,                                     n                                     −                                     x                                     +                                     β                                     )                                                                            (15)                                                       p(\theta|x) \propto \text{B}(x+\alpha, n-x+\beta)\tag{15}                     p(θ∣x)∝B(x+α,n−x+β)(15)
即后验分布也是                                    B                              \text{B}                  B 分布,与先验分布构成了共轭分布。
并且可以求得:
                                                                                                     θ                                        ^                                                  =                                                                  x                                           +                                           α                                           −                                           1                                                                     n                                           +                                           α                                           +                                           β                                           −                                           2                                                                                                       (16)                                                       \hat{\theta} = \frac{x+\alpha-1}{n+\alpha+\beta-2}\tag{16}                     θ^=n+α+β−2x+α−1​(16)
以上结论见参考资料 [1] 的6.2.3节。
假如,对于                                    θ                              \theta                  θ 的先验估计是                                              θ                            0                                       \theta_0                  θ0​ ,可以令:
                                                                                           α                                                                                                                   =                                           λ                                                           θ                                              0                                                          +                                           1                                                                                                                        β                                                                                                                   =                                           λ                                           (                                           1                                           −                                                           θ                                              0                                                          )                                           +                                           1                                                                                                 (                            17                            )                                  \begin{split} \alpha&=\lambda\theta_0+1 \\\beta&=\lambda(1-\theta_0)+1 \end{split}\quad(17)                     αβ​=λθ0​+1=λ(1−θ0​)+1​(17)
注意:(17)式是为了后面的目标而凑出来的一种假设,并引入了变量                                    λ                              \lambda                  λ 。
将(17)式代入(16)式,得到:
                                                                                                     θ                                        ^                                                  =                                                                  x                                           +                                           λ                                                           θ                                              0                                                                                    n                                           +                                           λ                                                                                                       (18)                                                       \hat{\theta}=\frac{x+\lambda\theta_0}{n+\lambda}\tag{18}                     θ^=n+λx+λθ0​​(18)
这就是所谓的拉普拉斯平滑,或曰拉普拉斯修正
多项朴素贝叶斯分类器

即特性的条件概率分布满足多项分布,其参数                                    θ                              \theta                  θ 的估计值就是经过拉普拉斯修正之后的值                                                                 [                               4                               ]                                                 ^{[4]}                  [4]:
                                                                                                                    θ                                           ^                                                                     y                                           i                                                                =                                                                                  N                                                               y                                                 i                                                                          +                                           α                                                                                     N                                              y                                                          +                                           α               ⁣                             n                                                                                                       (19)                                                       \hat{\theta}_{y_i}=\frac{N_{y_i}+\alpha}{N_y+\alpha\!n}\tag{19}                     θ^yi​​=Ny​+αnNyi​​+α​(19)
其中                                                                     N                                               y                                     i                                                      =                                           Σ                                               x                                     ∈                                                   ⁣                         T                                                                        x                               i                                                 \displaystyle{N_{y_i}=\Sigma_{x\in~\!T}}x_i                  Nyi​​=Σx∈ T​xi​ 是测试集类别标签为                                    y                              y                  y 的样本中,特性                                    i                              i                  i 出现的次数。                                             N                            y                                  =                                   Σ                                       i                               =                               1                                      n                                            N                                       y                               i                                                 N_y=\Sigma_{i=1}^nN_{y_i}                  Ny​=Σi=1n​Nyi​​ 是所有类别标签是                                    y                              y                  y 的特性数量。
(21)式中的                                    α                              \alpha                  α ,称为平滑先验


  • 若                                         α                            ≥                            0                                  \alpha\ge0                     α≥0 ,思量了学习样本中不存在的特性,并防止在进一步计算中出现零概率。
  • 若                                         α                            =                            1                                  \alpha=1                     α=1 ,称为拉普拉斯平滑。
  • 若                                         α                            <                            0                                  \alpha\lt0                     α<0 ,称为 Lidstone 平滑
朴素贝叶斯实现

使用 scikit-learn 提供的模块实现朴素贝叶斯分类器,网址见参考资料 [4] 。
常见的三种:高斯朴素贝叶斯,伯努利朴素贝叶斯和多项朴素贝叶斯。
高斯朴素贝叶斯


  • 加载数据
    1. # 加载数据
    2. from sklearn import datasets
    3. wine = datasets.load_wine()
    复制代码
  • 了解数据
    1. # 数据集特征(13个)
    2. wine.feature_names
    复制代码
    1. # 样本的类别标签(3个)
    2. wine.target_names
    复制代码
    1. # 数据集(特征)形状
    2. wine.data.shape
    复制代码
    1. # 查看前2条样本
    2. wine.data[:2]
    复制代码
    1. # 样本标签的值:
    2. wine.target
    复制代码
  • 划分数据集
    1. from sklearn.model_selection import train_test_split
    2. X_train, X_test, y_train, y_test = train_test_split(wine.data, wine.target,
    3.                                                     test_size=0.3,
    4.                                                     random_state=20
    5.                                                    )
    复制代码
  • 训练模型
    1. # 训练模型
    2. from sklearn.naive_bayes import GaussianNB
    3. gnb = GaussianNB()
    4. gnb.fit(X_train, y_train)
    复制代码
  • 简朴评估
    1. from sklearn import metrics
    2. # 预测
    3. y_pred = gnb.predict(X_test)
    4. metrics.accuracy_score(y_test, y_pred)
    复制代码
多项朴素贝叶斯

适合于离散特性,特别是文本分类。通常,要求特性下的数值是整数,但实际上,小数亦可以,例如 tf-idf 的数值。
案例:对消息数据进行分类

  • 引入模块并加载数据、划分数据集
    1. from sklearn.naive_bayes import MultinomialNB
    2. from sklearn.datasets import fetch_20newsgroups
    3. from sklearn.feature_extraction.text import TfidfVectorizer
    4. from sklearn.model_selection import train_test_split
    5. # 获取数据
    6. news = fetch_20newsgroups(subset="all")
    7. # 划分数据集
    8. X_train, X_test, y_train, y_test = train_test_split(news.data, news.target, test_size=0.2, random_state=20)
    复制代码
  • 特性工程:从文本中计算 tf-idf
    1. transfer = TfidfVectorizer()
    2. X_train = transfer.fit_transform(X_train)
    3. X_test = transfer.transform(X_test)
    复制代码
  • 训练模型
    1. mnb = MultinomialNB()  # 默认 alpha=1.0
    2. mnb.fit(X_train, y_train)
    复制代码
  • 评估模型:拟合优度
    1. mnb.score(X_test, y_test)
    复制代码
  • 观察                                              α                                      \alpha                        α 对预测结果的影响
    1. # alpha的值对模型的影响import numpy as npalphas = np.logspace(-2, 5, num=200)  # 10^-2 到 10^5scores = []for alpha in alphas:    mnb = MultinomialNB(alpha=alpha)    mnb.fit(X_train, y_train)    scores.append(mnb.score(X_test, y_test)
    2. )
    复制代码
    1. # 绘图
    2. import matplotlib.pyplot as plt
    3. fig = plt.figure()
    4. ax = fig.add_subplot(1,1,1)
    5. ax.plot(alphas, scores)
    6. ax.set_xlabel(r"$\alpha$")
    7. ax.set_ylabel(r"score")
    8. ax.set_ylim(0, 1.0)
    9. ax.set_xscale('log')
    复制代码
伯努利朴素贝叶斯

适用于二分类问题。
案例:鉴别垃圾邮件

  • 引入模块,加载数据
    1. import pandas as pd
    2. import numpy as np
    3. from sklearn.feature_extraction.text import CountVectorizer
    4. from sklearn.model_selection import train_test_split
    5. from sklearn.naive_bayes import BernoulliNB
    6. data = pd.read_csv("./data/spam.csv", encoding='latin-1')
    7. data = data[['class', 'message']]
    复制代码
  • 训练模型并评估
    1. # 特征 X,标签 y
    2. X = np.array(data["message"])
    3. y = np.array(data["class"])
    4. # 邮件内容向量化
    5. cv = CountVectorizer()
    6. X = cv.fit_transform(X)
    7. # 划分数据集
    8. X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, random_state=42)
    9. # 训练模型
    10. bnb = BernoulliNB(binarize=0.0)  # 参数说明 1
    11. bnb.fit(X_train, y_train)
    12. # 模型评估
    13. print(bnb.score(X_test, y_test))
    复制代码
    参数分析:

    • binarize :

      • 假如为 None ,则假定原始数据已经二值化。
      • 假如是浮点数,则以该数值为临界,特性取值大于此浮点数的作为 1,小于的作为 0 。用这种方式将特性数据二值化。


参考资料

[1]. 齐伟. 机器学习数学基础[M]. 北京:电子工业出书社
[2]. 谈继勇. 深度学习500问[M]. 北京:电子工业出书社, 2021:73.
[3]. 周志华. 机器学习[M]. 北京:清华大学出书社, 2016:148-149
[4]. Naive Bayes[EB/OL]. https://scikit-learn.org/stable/modules/naive_bayes.html#multinomial-naive-bayes . 2022.09.20

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

干翻全岛蛙蛙

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表