第 4 章 朴素贝叶斯法
浅谈极大似然估计与贝叶斯估计
极大似然估计:频率学派,认为参数是确定存在只是未知的,并且觉得出现的状态假设是按概率最大的情况出现的,所以对极大似然函数求极值就可以得到参数 θ .(下述 D 为训练数据集)
θMLE=argmaxθP(D|θ)
贝叶斯估计 : 贝叶斯学派,认为参数是不确定的,也是一个随机变量,所以给定输入不能得到输出,只能根据先验概率得出输出的期望:
E[y|x,D]=∫P(y|x,θ)P(θ|D)dθ
所以呢,想要求后验概率
P(θ|D) , 想起贝叶斯公式:
P(θ|D)=P(D|θ)⋅P(θ)P(D)=P(D|θ)⋅P(θ)∫P(D|θ)⋅P(θ)dθ
但是积分看到就烦,而且不好计算,还可能不存在解析解,所以呢,就将就一下,转而求极大后验概率:
θMAP=argmaxθP(D|θ)P(θ)
乍一看,两类估计非常相似,为什么要提贝叶斯估计呢,是因为有时概率是做分母的,比如NLP中,测试集中包含训练集里没有的词,然后概率就为0了,NB里面,是假设i.i.d的,有一个为0就没得算了,在进行模型评估的时候计算一个pvalue,你也麻烦了。所以呢,一般需要对数据进行平滑化处理,常用的是Laplace换句话说就是add-one smoothing 就是管你什么情况 对于所有的词我都默认出现过一次了.
说起这个,由于出现频次太低,语料库有比较大的时候,可能出现下溢出。就是太太太小了,都约为0 那还比个什么啊,所以这个应对措施是取对数.
4.1 用极大似然估计法推出朴素贝叶斯法中的概率估计公式(4.8)及(4.9).
P.S P(Y=ck)=∑Ni=1I(yi=ck)N(4.8) ;
P(X(j)=ajl|Y=ck)=∑Ni=1I(x(j)i=ajl,yi=ck)∑Ni=1I(yi=ck)j=1,2,⋯,n;l=1,2,⋯,Sj;k=1,2,⋯,K(4.9)
证明:(4.8)
记 p=P(y=ck),q=P(x(j)1=ajl|yi=ck) , m=∑Ni=1I(yi=ck) , n=∑Ni=1I(x(j)i=ajl,yi=Ck) ,
M 为我们假设的概率模型;
根据极大似然估计,我们认为 y 独立同分布,似然函数为:
P=P(y1,y2,⋯,yN|M)=P(y1|M)P(y2|M)⋯P(yN|M)=pm⋅ (1−p)N−m
对
P 取对数,并求导,令导数为0求
p 的极大似然:
∂logP∂p=mp−N−m1−p=0
求得
p=mN ,即
P(Y=ck)=∑Ni=1I(yi=ck)N .
(4.9)
P=P(x(j)1,x(j)2,⋯,x(j)m|yi=ck,M)=P(x(j)1|yi=ck,M)P(x(j)2|yi=ck,M)⋯P(x(j)m|yi=ck,M)=qn⋅ (1−q)m−n
同上可得
q=nm ,即
P(X(j)=ajl|Y=ck)=∑Ni=1I(x(j)i=ajl,yi=Ck)∑Ni=1I(yi=ck) .
4.2 用贝叶斯估计法推出朴素贝叶斯法中的概率公式(4.10)及(4.11)
P.S 条件概率的贝叶斯公式:
P(X(j)=ajl|Y=ck)=∑Ni=1I(x(j)i=ajl,yi=ck)+λ∑Ni=1I(yi=ck)+Sjλ(4.10)
显然
∀l=1,2,⋯,Sj,k=1,2,⋯,K, 有:
Pλ(X(j)=ajl|Y=ck)>0∑l=1SjP(X(j)=ajl|Y=ck)=1
这表明(4.10)为一个概率分布
先验概率的贝叶斯估计:
Pλ(Y=ck)=∑Ni=1I(yi=ck)+λN+Kλ(4.11)
证明:(记号同上一题) Y 的取值一共有 K 种情况, λ 表示各种情况的取值初始值,即每种情况都有 λ 次发生,所以 θ 的先验概率为: P(θ)=pλ(1−p)(K−1)λ
P(D|θ)P(θ)=P(y1,y2,⋯,yN|D)P(θ)=P(y1|D)P(y2|D)⋯P(yN|D)P(θ)=pm+λ⋅ (1−p)N−m+(k−1)λ
同上题求极值得:
Pλ(Y=ck)=∑Ni=1I(yi=ck)+λN+Kλ
同理可证(4.10)式.