持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第5天,点击查看活动详情
朴素贝叶斯是对数据属性之间的关系进行了假设,即各个属性维度之间独立。
NB中我们假设X是离散的,服从多项分布(包括伯努利)。GDA的X可以用多维高斯分布表示,但是在NB中我们却不能直接使用多项分布。我们用垃圾邮件分类器来阐述NB的思想。
在这个分类器中我们可以用单词向量作为输入特征,具体的,我们的单词书中如果一共有50000个词,那么一封邮件的x向量可以是
x=⎣⎡100⋅⋅1⋅⋅0⎦⎤aaardvarkaardwolf⋅⋅buy⋅⋅zen
x是一个50000维的向量,在这封邮件中如果存在字典中的词,那该词所在的位置设置为1;否则为0。
如果要直接用多项分布对p(x∣y)建模, p(x∣y)共有250000个不同的值,那么我们至少需要250000−1个参数使参数和为1,对如此多的参数进行估计是不现实的,所以我们做一个强假设来简化概率模型。
因为每一维度都有0,1两种可能,因此就有250000种组合
作者:rushshi
链接:高斯判别分析(GDA)和朴素贝叶斯(NB)_rushshi的博客-CSDN博客
{(xi,yi)}i=1N,xi∈Rp,yi∈{0,1}
朴素贝叶斯假设每一个维度都是独立的,则有
p(x1,⋯,xp∣y)=p(x1∣y)p(x2∣y,x1)⋯p(xp∣y,x1,⋯,xp−1)根据朴素贝叶斯假设各个维度独立=p(x1∣y)p(x2∣y)⋯p(xp∣y)=j=1∏pp(xj∣y)
这里需要先假设
yp(xj=1∣y=0)p(xj=1∣y=1)ϕj∣yp(xj∣y)∼B(1,ϕy)⇒p(y)=ϕy(1−ϕ)1−y=ϕj∣y=0=ϕj∣y=1=ϕj∣y=1yϕj∣y=01−y=ϕj∣yxj(1−ϕj∣y)1−xj
对数似然函数
L(ϕy,ϕj∣y=0,ϕj∣y=1)=logi=1∏Np(xi,yi)=logi=1∏Np(xi∣yi)p(yi)=logi=1∏N(j=1∏pp(xij∣yi))p(yi)=i=1∑N[logp(yi)+j=1∑plogp(xij∣yi)]=i=1∑N⎣⎡(1)yilogϕy+(1−yi)log(1−ϕy)+(2)j=1∑p[(xijlogϕj∣yi)+(1−xij)log(1−ϕj∣yi)]⎦⎤
对于ϕj∣y=0有
(2)∂ϕj∣y=0∂(2)000ϕj∣y=0=j=1∑p[(xijlogϕj∣yi)+(1−xij)log(1−ϕj∣yi)]=j=1∑p[xijlogϕj∣y=01{yi=0}+(1−xij)log(1−ϕj∣y=0)1{yi=0}]=j=1∑p[xijϕj∣y=011{yi=0}−(1−xij)1−ϕj∣y=011{yi=0}]=0=j=1∑p[(xij−ϕj∣y=0)1{yi=0}]=j=1∑p(xij⋅1{yi=0})−ϕj∣y=0j=1∑p1{yi=0}=j=1∑p1{xij=1∧yi=0}−ϕj∣y=0j=1∑p1{yi=0}=j=1∑p1{yi=0}j=1∑p1{xij=1∧yi=0}
指示函数
1A(x)={10x∈Ax∈/A
也可记作IA(x),XA(x)
这里的指示函数在GDA中有类似的代替,即
C1={xi∣yi=1,i=1,2,⋯,N},∣C1∣=N1C0={xi∣yi=0,i=1,2,⋯,N},∣C0∣=N0xi∈C1∑,xi∈C0∑
ϕj∣y=0可以理解为y=0的样本中x维度为1的数量除以y=0的样本个数
同理可得ϕj∣y=1
ϕj∣y=1=j=1∑p1{yi=1}j=1∑p1{xij=1∧yi=1}
对于ϕy
(1)∂ϕy∂(1)00ϕy^=i=1∑N[yilogϕy+(1−yi)log(1−ϕy)]=i=1∑N[yiϕy1−(1−yi)1−ϕy1]=0=i=1∑N[yi(1−ϕy)−(1−yi)ϕy]=i=1∑N(yi−ϕy)=Ni=1∑N1{yi=1}
这里假设x只能等于0,1,但实际上x常常服从于类别分布,实际上思路相同,只是估计参数变多,这里不进行推导