从线性模型角度理解朴素贝叶斯

以前看朴素贝叶斯的时候只知道它属于生成模型,这几天回顾的时候发现理解的不够深,在这里总结一下,如果有不对的地方,欢迎指正。

0. 生成模型与判别模型

  1. 判别模型:判别模型关心的是给定输入 x x ,应该预测怎样的输出y,它通常是直接学习条件概率分布 p(y|x) p ( y | x ) ,例如逻辑回归(Logistic Regression)。
  2. 生成模型:通常对 p(y) p ( y ) (class priors)与 p(x|y) p ( x | y ) (likelihood)建模,根据贝叶斯公式得到条件概率分布 p(y|x) p ( y | x )

p(y|x)=p(x,y)p(x)=p(y)p(x|y)p(x)(1) (1) p ( y | x ) = p ( x , y ) p ( x ) = p ( y ) p ( x | y ) p ( x )

  如果我们使用(1)式对样本 x x 进行分类时,则是将其分到具有最大输出概率p(y|x)的一类:

argmaxyp(y|x)=argmaxyp(x|y)p(y)p(x)=argmaxyp(x|y)p(y)(2) (2) arg ⁡ max y ⁡ p ( y | x ) = arg ⁡ max y ⁡ p ( x | y ) p ( y ) p ( x ) = arg ⁡ max y ⁡ p ( x | y ) p ( y )

  其中,分母 p(x) p ( x ) 是与最大化 y y 无关的常数项,可以略去。朴素贝叶斯分类器就是通过这种方式进行分类。

1. 朴素贝叶斯分类器

  对于具有n维特征的样本x=(x1,x2,...,xn),其可能的输出有 K K {C1,C2,...,Ck},使用朴素贝叶斯预测给定当前样本 x x 下其输出类别 Ck C k 的概率,根据(1)式可以写为:

p(Ck|x1,x2,...,xn)=p(x1,x2,...,xn,Ck)p(x)=p(Ck)p(x1,x2,...,xn|Ck)p(x)(3) (3) p ( C k | x 1 , x 2 , . . . , x n ) = p ( x 1 , x 2 , . . . , x n , C k ) p ( x ) = p ( C k ) p ( x 1 , x 2 , . . . , x n | C k ) p ( x )

对(3)式中分子的第二项,有:
p(x1,x2,...,xn|Ck)=p(x1|x2,...,xn,Ck)p(x2,...,xn,Ck)=p(x1|x2,...,xn,Ck)p(x2|x3,...,xn,Ck)p(x3,...,xn,Ck)=...=p(x1|x2,...,xn,Ck)p(x2|x3,...,xn,Ck)...p(xn1|xn,Ck)p(xn|Ck)(4) (4) p ( x 1 , x 2 , . . . , x n | C k ) = p ( x 1 | x 2 , . . . , x n , C k ) p ( x 2 , . . . , x n , C k ) = p ( x 1 | x 2 , . . . , x n , C k ) p ( x 2 | x 3 , . . . , x n , C k ) p ( x 3 , . . . , x n , C k ) = . . . = p ( x 1 | x 2 , . . . , x n , C k ) p ( x 2 | x 3 , . . . , x n , C k ) . . . p ( x n − 1 | x n , C k ) p ( x n | C k )

由于朴素贝叶斯做了条件独立的强假设,那么(4)式变为:
p(x1,x2,...,xn|Ck)=i=1np(xi|Ck)(5) (5) p ( x 1 , x 2 , . . . , x n | C k ) = ∏ i = 1 n p ( x i | C k )

这样(3)式就可以写为:
p(Ck|x1,x2,...,xn)=p(Ck)ni=1p(xi|Ck)p(x)=p(Ck)ni=1p(xi|Ck)ip(x|Ci)p(Ci)(6) (6) p ( C k | x 1 , x 2 , . . . , x n ) = p ( C k ) ∏ i = 1 n p ( x i | C k ) p ( x ) = p ( C k ) ∏ i = 1 n p ( x i | C k ) ∑ i p ( x | C i ) p ( C i )

在训练时,需要做的只是统计 p(Ck) p ( C k ) p(xi|Ck) p ( x i | C k ) ,可以说是非常Naive了。

在预测时,只需要预测具有使(6)式最大的类别即可,这就是朴素贝叶斯分类器,这里只是做了个简单的复习。

2. 从线性模型角度理解

  发现朴素贝叶斯可以从线性模型的角度去解释,下面我用两个最常用的贝叶斯模型来说明他们都是log-linear的,Spark源码就是按照下面实现的。贝叶斯模型还有服从高斯分布的,这里就不做说明了。

2.1 伯努利朴素贝叶斯(Bernoulli naive Bayes)

  我们将样本表示为 x=(x1,x2,...,xn) x = ( x 1 , x 2 , . . . , x n ) ,以文本分类为例, xi x i 可以看做一篇文档中的第 i i 个词是否出现在文档中,即它的取值只能为{0, 1},文档中的每个词 wi w i 以概率 p(wi|Ck) p ( w i | C k ) 从同一个伯努利概率分布中生成,词汇表的大小为 n n

对(3)式中分子的第二项,有:

(7)p(x|Ck)=i=1npkixi(1pki)1xi

pki p k i 为第k类下生成 xi x i 的概率。那么,后验概率可以表示为:

logp(Ck|x)logp(Ck)p(x|Ck)=logp(Ck)+i=1nxilogpki+i=1n(1xi)log(1pki)=i=1nxi(logpkilog(1pki))+i=1nlog(1pki)+logp(Ck)=wTkx+b(8) (8) log ⁡ p ( C k | x ) ∝ log ⁡ p ( C k ) p ( x | C k ) = log ⁡ p ( C k ) + ∑ i = 1 n x i log ⁡ p k i + ∑ i = 1 n ( 1 − x i ) log ⁡ ( 1 − p k i ) = ∑ i = 1 n x i ( log ⁡ p k i − log ⁡ ( 1 − p k i ) ) + ∑ i = 1 n log ⁡ ( 1 − p k i ) + log ⁡ p ( C k ) = w k T x + b

其中: wki=logpkilog(1pki) w k i = log ⁡ p k i − log ⁡ ( 1 − p k i ) b=ni=1log(1pki)+logp(Ck) b = ∑ i = 1 n log ⁡ ( 1 − p k i ) + log ⁡ p ( C k )

从(8)式中可以看到,伯努利朴素贝叶斯是log线性(log-linear)的。

2.2 多项式朴素贝叶斯(Multinomial naive Bayes)

  多项式朴素贝叶斯(Multinomial Naive Bayes, MNB),准确的讲应该叫Multinomial Event Model。使用MNB,我们将样本表示为 x=(x1,x2,...,xn) x = ( x 1 , x 2 , . . . , x n ) ,以文本分类为例, xi x i 可以看做一篇文档中的第 i i 个词wi的词频,文档中的每一个词 wi w i 以概率 p(wi|Ck) p ( w i | C k ) 从同一个多项式概率分布中生成,词汇表的大小为 n n 。对(3)式中分子的第二项,有:

(9)p(x|Ck)=(ixi)!i=1np(wi|Ck)xiixi!

  关于上面那个式子怎么来的,我们有样本 x=(x1,x2,...,xn) x = ( x 1 , x 2 , . . . , x n ) ,在 ixi=N ∑ i x i = N 个词中,词 w1 w 1 出现了 x1 x 1 次,词 w2 w 2 出现了 x2 x 2 次,词 wn w n 出现了 xn x n 次,每个词 wi w i 出现的概率即 p(wi|Ck) p ( w i | C k ) ,根据排列组合公式有:

p(x|Ck)=(Cx1Np(w1|Ck)x1)(Cx2Nx1p(w2|Ck)x2)...(CxnNn1i=1xip(wn|Ck)xn)=N!p(w1|Ck)x1x1!(Nx1)!(Nx1)!p(w2|Ck)x2x2!(Nx1x2)!...(Nn1i=1xi)!p(wn|Ck)xnxn!=N!p(w1|Ck)x1x1!p(w2|Ck)x2x2!...p(wn|Ck)xnxn!=(ixi)!i=1np(wi|Ck)xiixi!(10) (10) p ( x | C k ) = ( C N x 1 ⋅ p ( w 1 | C k ) x 1 ) ⋅ ( C N − x 1 x 2 ⋅ p ( w 2 | C k ) x 2 ) . . . ( C N − ∑ i = 1 n − 1 x i x n ⋅ p ( w n | C k ) x n ) = N ! ⋅ p ( w 1 | C k ) x 1 x 1 ! ( N − x 1 ) ! ⋅ ( N − x 1 ) ! ⋅ p ( w 2 | C k ) x 2 x 2 ! ( N − x 1 − x 2 ) ! . . . ( N − ∑ i = 1 n − 1 x i ) ! ⋅ p ( w n | C k ) x n x n ! = N ! ⋅ p ( w 1 | C k ) x 1 x 1 ! ⋅ p ( w 2 | C k ) x 2 x 2 ! . . . p ( w n | C k ) x n x n ! = ( ∑ i x i ) ! ∏ i = 1 n p ( w i | C k ) x i ∏ i x i !

有了式(10),那么,后验概率可以表示为:
logp(Ck|x)log(p(Ck)i=1np(wi|Ck)xi)=i=1nxilogp(wi|Ck)+logp(Ck)=wTkx+b(11) (11) log ⁡ p ( C k | x ) ∝ log ⁡ ( p ( C k ) ∏ i = 1 n p ( w i | C k ) x i ) = ∑ i = 1 n x i ⋅ log ⁡ p ( w i | C k ) + log ⁡ p ( C k ) = w k T x + b

其中: wki=logp(wi|Ck) w k i = log ⁡ p ( w i | C k ) b=logp(Ck) b = log ⁡ p ( C k )

式(11)中关于 xi x i 的阶乘项是与类别 Ck C k 的无关项,可以删去。可以发现,MNB也是log线性(log-linear)的。

3. 朴素贝叶斯与逻辑回归的区别

  逻辑回归的本质也是对对数几率做线性回归,所以它也是log-linear的,那么它的朴素贝叶斯有哪些呢?这里引用CIS520的总结:
这里写图片描述

参考:
1. https://en.wikipedia.org/wiki/Naive_Bayes_classifier
2. https://nlp.stanford.edu/IR-book/html/htmledition/naive-bayes-text-classification-1.html
3. https://nlp.stanford.edu/IR-book/html/htmledition/the-bernoulli-model-1.html
4. https://alliance.seas.upenn.edu/~cis520/wiki/index.php?n=lectures.logistic#toc7
5. https://www.cs.waikato.ac.nz/~eibe/pubs/kibriya_et_al_cr.pdf
6. http://people.csail.mit.edu/jrennie/papers/icml03-nb.pdf

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值