以前看朴素贝叶斯的时候只知道它属于生成模型,这几天回顾的时候发现理解的不够深,在这里总结一下,如果有不对的地方,欢迎指正。
0. 生成模型与判别模型
- 判别模型:判别模型关心的是给定输入 x x ,应该预测怎样的输出,它通常是直接学习条件概率分布 p(y|x) p ( y | x ) ,例如逻辑回归(Logistic Regression)。
- 生成模型:通常对 p(y) p ( y ) (class priors)与 p(x|y) p ( x | y ) (likelihood)建模,根据贝叶斯公式得到条件概率分布 p(y|x) p ( y | x ) :
如果我们使用(1)式对样本
x
x
进行分类时,则是将其分到具有最大输出概率的一类:
其中,分母 p(x) p ( x ) 是与最大化 y y 无关的常数项,可以略去。朴素贝叶斯分类器就是通过这种方式进行分类。
1. 朴素贝叶斯分类器
对于具有n维特征的样本,其可能的输出有
K
K
类,使用朴素贝叶斯预测给定当前样本
x
x
下其输出类别
Ck
C
k
的概率,根据(1)式可以写为:
对(3)式中分子的第二项,有:
由于朴素贝叶斯做了条件独立的强假设,那么(4)式变为:
这样(3)式就可以写为:
在训练时,需要做的只是统计 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 个词是否出现在文档中,即它的取值只能为,文档中的每个词 wi w i 以概率 p(wi|Ck) p ( w i | C k ) 从同一个伯努利概率分布中生成,词汇表的大小为 n n 。
对(3)式中分子的第二项,有:
pki p k i 为第k类下生成 xi x i 的概率。那么,后验概率可以表示为:
其中: wki=logpki−log(1−pki) w k i = log p k i − log ( 1 − p k i ) , b=∑ni=1log(1−pki)+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
w
i
以概率
p(wi|Ck)
p
(
w
i
|
C
k
)
从同一个多项式概率分布中生成,词汇表的大小为
n
n
。对(3)式中分子的第二项,有:
关于上面那个式子怎么来的,我们有样本 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 ) ,根据排列组合公式有:
有了式(10),那么,后验概率可以表示为:
其中: 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