以前看朴素贝叶斯的时候只知道它属于生成模型,这几天回顾的时候发现理解的不够深,在这里总结一下,如果有不对的地方,欢迎指正。
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 ) :
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 进行分类时,则是将其分到具有最大输出概率
的一类:
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维特征的样本
,其可能的输出有 K K 类
,使用朴素贝叶斯预测给定当前样本 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(x