朴素贝叶斯算法 --- Naive Bayes

本文详细介绍了朴素贝叶斯算法,包括数据符号、条件独立性假设、推理方法(联合概率分布、后验概率)、学习过程中的参数估计(极大似然估计与平滑处理),以及算法在统计决策理论和概率图模型中的应用。
摘要由CSDN通过智能技术生成

朴素贝叶斯算法 — Naive Bayes

作者:Alex Hu
博客:https://blog.csdn.net/m0_37204267
转载请注明作者和出处。


1. 数据符号

设输入空间 XRp X ⊆ R p p p 维的向量集合,输出空间为类标集合Y={c1,c2,...,ck}。输入特征向量 xX,x=(x1,x2,...,xp) x ∈ X , x = ( x 1 , x 2 , . . . , x p ) ,输出为类标 yY y ∈ Y X X 是定义在输入空间X上的随机向量, Y Y 是定义在输出空间Y上的随机向量。 P(X,Y) P ( X , Y ) X X Y的联合概率分布。训练数据集为

T={(x1,y1),(x2,y2),...,(xN,yN)} T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) }
P(X,Y) P ( X , Y ) 独立同分布产生。


2. 表示 — 条件独立性假设

朴素贝叶斯算法是基于贝叶斯定理与特征条件独立假设的分类算法

该算法成立需要很强的条件独立性假设:在给定样本类别的情况下,样本的各个特征之间是独立的。 这种假设在实际中很难成立,通常情况下各个特征之间是有联系的。但是这种假设会使得计算变得简单,在一些应用(如文本分类)中取得了不错的效果。这种假设因为把特征间的联系给去掉了,想要取得更高的分类性能就比较困难。

若没有条件独立性假设,条件概率分布 P(X=x|Y=ck) P ( X = x | Y = c k ) 有指数级数量的参数,要进行参数估计是不可行的。假设 xj x j 可能的取值有 Sj S j 个, j=1,2,...,m j = 1 , 2 , . . . , m , Y Y 可取值有K个,那么参数个数为 Kmj=1Sj K ∏ j = 1 m S j

朴素贝叶斯方法对条件概率分布作了条件独立性假设。具体的,条件独立性假设是

P(X=x|Y=ck)=P(X1=x1,X2=x2,...,Xp=xp|Y=ck)=j=1pP(Xj=xj|Y=ck)(1) (1) P ( X = x | Y = c k ) = P ( X 1 = x 1 , X 2 = x 2 , . . . , X p = x p | Y = c k ) = ∏ j = 1 p P ( X j = x j | Y = c k )
需要的参数的个数为 K(Sj1)p K ( S j − 1 ) p ,数量远小于上述参数。


3. 推理 — 基本方法

Created with Raphaël 2.1.2 开始 根据特征条件独立性假设求联合概率分布 根据贝叶斯定理求后验概率最大 结束
3.1 求联合概率分布

朴素贝叶斯算法通过训练数据集学习联合概率分布 P(X,Y) P ( X , Y ) 。具体方法是:通过先验概率分布 P(Y=ck) P ( Y = c k ) 和条件概率分布 P(X=x|Y=ck)=P(X1=x1,X2=x2,...,Xp=xp|Y=ck) P ( X = x | Y = c k ) = P ( X 1 = x 1 , X 2 = x 2 , . . . , X p = x p | Y = c k ) 学习到联合概率分布 P(X,Y) P ( X , Y )

3.2 求后验概率

根据贝叶斯定理,对给定的输入 x x ,通过学习的模型求得后验概率分布P(Y=ck|X=x), 将后验概率最大的类作为 x x 的类输出。

(2)P(Y=ck|X=x)=P(X=x|Y=ck)P(Y=ck)kP(X=x|Y=ck)P(Y=ck)

将公式(1)带入公式(2)得到

P(Y=ck|X=x)=P(Y=ck)pj=1P(Xj=xj|Y=ck)kP(Y=ck)pj=1P(Xj=xj|Y=ck)(3) (3) P ( Y = c k | X = x ) = P ( Y = c k ) ∏ j = 1 p P ( X j = x j | Y = c k ) ∑ k P ( Y = c k ) ∏ j = 1 p P ( X j = x j | Y = c k )

3.3 朴素贝叶斯分类器

公式(3)是朴素贝叶斯分类的基本公式。于是,朴素贝叶斯分类器可以表示为

y=f(x)=argmaxckP(Y=ck)pj=1P(Xj=xj|Y=ck)kP(Y=ck)pj=1P(Xj=xj|Y=ck)(4) (4) y = f ( x ) = arg ⁡ max c k ⁡ P ( Y = c k ) ∏ j = 1 p P ( X j = x j | Y = c k ) ∑ k P ( Y = c k ) ∏ j = 1 p P ( X j = x j | Y = c k )

注意到公式(4)中分母对所有 ck c k 都是相同的,所以,
y=f(x)=argmaxckP(Y=ck)j=1pP(Xj=xj|Y=ck)(5) (5) y = f ( x ) = arg ⁡ max c k ⁡ P ( Y = c k ) ∏ j = 1 p P ( X j = x j | Y = c k )


4 学习 — 参数估计

4.1 极大似然估计

从公式(5)中看出需要估计的参数有 P(Y=ck) P ( Y = c k ) P(Xj=xj|Y=ck) P ( X j = x j | Y = c k ) 。可以应用极大似然估计从原始的训练数据集中做简单统计,可以得到

P(Y=ck)=Ni=1I(yi=ck)Nk=1,2,...,K() (先验概率) P ( Y = c k ) = ∑ i = 1 N I ( y i = c k ) N k = 1 , 2 , . . . , K

P(Xj=ajl|Y=ck)=Ni=1I(Xji=ajl,yi=ck)Ni=1I(yi=ck)i=1,2,...,N;l=1,2,...,Sj;k=1,2,...K() (似然概率) P ( X j = a j l | Y = c k ) = ∑ i = 1 N I ( X i j = a j l , y i = c k ) ∑ i = 1 N I ( y i = c k ) i = 1 , 2 , . . . , N ; l = 1 , 2 , . . . , S j ; k = 1 , 2 , . . . K

其中 I() I ( · ) 是指示函数, xji x i j 表示第 i i 个样本的第j个特征值。

4.2 贝叶斯估计 — 平滑处理

因为训练数据集数量很少,若出现某个类别或特征值未出现的情况,用极大似然估计的过程中,这些量的概率就为0,会影响后验概率的计算,使分类产生偏差。解决的方法是采用贝叶斯估计

P(Y=ck)=Ni=1I(yi=ck)+λN+Kλ P ( Y = c k ) = ∑ i = 1 N I ( y i = c k ) + λ N + K λ

Pλ(Xj=ajl|Y=ck)=Ni=1I(Xji=ajl,yi=ck)+λNi=1I(yi=ck)+Sjλ P λ ( X j = a j l | Y = c k ) = ∑ i = 1 N I ( X i j = a j l , y i = c k ) + λ ∑ i = 1 N I ( y i = c k ) + S j λ

其中 λ>0 λ > 0 。当 λ=0 λ = 0 是就是最大似然估计,当 λ=1 λ = 1 时称为拉普拉斯平滑。

个人理解,这里的 λ λ 可以当作各个量的的先验知识。


5 统计决策理论 — 后验概率最大化

    后验概率最大 ⟺ 期望风险最小化 

假设选择0-1损失函数:
L(Y,f(X))={01Yf(X)Y=f(X) L ( Y , f ( X ) ) = { 0 Y ≠ f ( X ) 1 Y = f ( X )

其中 f(X) f ( X ) 是分类决策函数。这时,期望风险函数为
Rexp(f)=E[L(Y,f(X))]=X×YL(y,f(x))P(x,y)dxdy=X×YL(y,f(x))P(x,y)dxdy=X [YL(y,f(x))P(y|x)dy] P(x)dx=XE[Y|X=x]P(x)dx R e x p ( f ) = E [ L ( Y , f ( X ) ) ] = ∫ X × Y L ( y , f ( x ) ) P ( x , y ) d x d y = ∫ X × Y L ( y , f ( x ) ) P ( x , y ) d x d y = ∫ X   [ ∫ Y L ( y , f ( x ) ) P ( y | x ) d y ]   P ( x ) d x = ∫ X E [ Y | X = x ] P ( x ) d x

原始的期望是对联合概率分布 P(X,Y) P ( X , Y ) 取得,经过转换后只考虑取得条件期望:
Rexp(f)=EX[k=1KL(ck,f(X))P(ck|X)] R e x p ( f ) = E X [ ∑ k = 1 K L ( c k , f ( X ) ) P ( c k | X ) ]

为了使期望风险最小化,只要对 X=x X = x 逐个极小化,由此得到:
f(x)=argminyYk=1KL(ck,y)P(ck|X=x)=argminyYk=1KP(yck|X=x)=argminyY(1P(y=ck|X=x))=argmaxyYP(y=ck|X=x) f ( x ) = arg ⁡ min y ∈ Y ⁡ ∑ k = 1 K L ( c k , y ) P ( c k | X = x ) = arg ⁡ min y ∈ Y ⁡ ∑ k = 1 K P ( y ≠ c k | X = x ) = arg ⁡ min y ∈ Y ⁡ ( 1 − P ( y = c k | X = x ) ) = arg ⁡ max y ∈ Y ⁡ P ( y = c k | X = x )

这样一来,根据期望风险最小化准则就得到了后验概率最大化准则:
f(x)=argmaxckP(ck|X=x) f ( x ) = arg ⁡ max c k ⁡ P ( c k | X = x )


6 朴素贝叶斯与概率图的关系

朴素贝叶斯也是概率图模型中最简单的一种形式。 下面给出朴素贝叶斯算法在概率图模型中的位置。
概率图模型的演变


参考文献

[1] 李航. 统计学习方法. 清华出版社, 2012.
[2] 宗成庆. 统计自然语言处理(第二版). 清华大学出版社, 2013.
[3] 孙相国. 概率图模型4:贝叶斯网络. 2017.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值