朴素贝叶斯的参数估计

输入空间 XRn n 维向量的集合,输出空间 Y={c1,c2,...,cK} 为类标记集合设输入为特征向量 x ,输出为类标记 y X 为定义在输入空间上的随机向量, Y 是定义在输出空间上的随机向量。 P(x,y) X Y 的联合概率分布,训练数据集 T={(x1,y1),(x2,y2),...,(xN,yN)} P(X,Y) 独立同分布产生。

朴素贝叶斯的决策函数为:

y=argmaxckP(Y=ck)jNP(X(j)=x(j)|Y=ck)

模型的学习意味着估计 P(Y=ck) P(X(j)=x(j)|Y=ck) . 可以使用极大似然估计(MLE)最大后验概率估计(MAP)来进行参数估计.这里主要讨论极大似然估计。

1. 极大似然估计

极大似然估计适于“模型已知,参数未定”的情况. 已知某个随机样本满足某种概率分布,但是其中具体的参数不清楚,参数估计就是通过若干次试验,观察其结果,利用结果推出参数的大概值。最大似然估计是建立在这样的思想上:已知某个参数能使这个样本出现的概率最大,我们当然不会再去选择其他小概率的样本,所以干脆就把这个参数作为估计的真实值。我们所估计的模型参数,要使得产生这个给定样本的可能性最大. 该方法通常有以下几个步骤:

  • 写出似然函数
  • 对似然函数取对数
  • 求导数
  • 解似然方程

其中最关键的一步在于列出似然函数。

2. 从变量 Y 的分布律出发构造似然函数

2.1 最简单的假设:变量 Y 服从伯努利分布

为简单起见,考虑二分类的情况,并假设变量 Y 服从伯努利分布。设 p{Y=c1}=p ,则 p{Yc1}={Y=c2}=1p . 统一起来表示为 P{Y=t}=pt(1p)1t(t=0,1) .

事件 yi 发生的概率是 P{yi=t}=pti(1p)1ti . 设训练集中 c1 出现的次数为 d ,则 d=Ni=1I(yi=c1) .

样本联合分布为:

L(y1,y2,...,yN;p)=i=1Npti(1p)Nti=pd(1p)Nd

L(y1,y2,...,yN;p) 看成是 p 的函数,称为参数 p 的似然函数,记为 L(p) . 取对数似然函数 lnL(p)=dlnp+(Nd)ln(1p) ,对其求导有:

lnL(p)p=dpNd1p

lnL(p)p =0,可解得 p=dN ,即:

P(Y=ck)=Ni=1I(yi=c1)N

2.2 从 Y 的分布律出发构造似然函数

前面假设 Y 服从伯努利,根据其分布函数列似然函数。事实上我们并不知道 Y 服从何种分布,此时可以假设 Y 的分布律。

令参数 P(Y=ck)=θk ,其中 k{1,2,...,K} 。那么 随机变量 Y 的分布律可用参数表示为

P(Y)=k=1KθkI(Y=ck)

其中 I 指示函数,当 Y=ck 成立时为1,否则为0. P(yi)=Kk=1θkI(Y=cyi) . 约束条件 Ki=1θk=1 ,

极大似然函数 L(θk;y1,y2,...,yN)=Ni=1P(yi)=Ni=1θNkK ,其中 Nk 为样本中 Y=ck 的样本数目,易知 Ki=1Nk=K 。取对数的到:

lnL(θ)=k=1KNklnθk

由约束条件 Ki=1θk=1 ,使用拉格朗日乘子法

L(θ,λ)=k=1KNklnθk+λ(k=1Kθk1)

该函数的极值与目标函数一致,分别令其对 θ1,θ2,...,θK 的导数为0,可得到:

N1θ1+λ=0N2θ2+λ=0...NKθK+λ=0i=1Kθk=1i=1KNk=N

联立以上各式,可得: θk=NkN

3. 从 (X,Y) 的联合概率分布出发构造似然函数

我们考虑构建二元变量 (X,Y) 的联合分布。这需要 p(y=ck) p(x(j)=ajl|y=ck) 作为参数。

  • p(y)=Kk=1p(y=ck)I(y=ck)
  • p(x|y=ck)=Nj=1p(x(j)|y=ck)=Nj=1Sjl=1p(x(j)=ajl|y=ck)I(x(j)=ajl,y=ck)

φ 代替参数集合 {p(y=ck),p(x(j)=ajl|y=ck)} ,设第 i 个样本的第 j 个特征 x(j)i 可能的取值集合为 {aj1,aj2,...,ajSj} ,其中 i=1,2,...,N;j=1,2,...,n . 有一个易得的约束条件是 Kk=1p(y=ck)=1 .

写出样本的对数似然函数

L(φ)======lni=1Np(xi,yi;φ)lni=1Np(xi|yi;φ)p(yi;φ)#lni=1N(j=1np(x(j)i|yi;φ))p(yi;φ)#ni=1N(lnp(yi,φ)+j=1nlnp(x(j)i|yi;φ))i=1N[k=1Klnp(y=ck)I(yi=ck)+j=1nl=1Sjlnp(x(j)=ajl|yi=ck)I(x(j)i=ajl,yi=ck)]#i=1N[k=1KI(yi=ck)lnp(y=ck)+j=1nl=1SjI(x(j)i=ajl,yi=ck)lnp(x(j)=ajl|yi=ck)]#

现在来求似然函数的极大值。

考虑 p(y=ck) 系列参数,此时只需要考虑似然函数的前半部分。

L(φ)p(y=ck)===p(y=ck)i=1Nk=1KI(yi=ck)lnp(y=ck)p(y=ck)i=1N[k=1K1I(yi=ck)lnp(y=ck)+I(yi=cK)lnp(y=cK)]p(y=ck)i=1N[k=1K1I(yi=ck)lnp(y=ck)+I(yi=cK)ln(1k=1K1p(y=ck))]

其中最后一步用到了约束条件 Kk=1p(y=ck)=1 ,使用了等式 p(y=cK)=1K1k=1p(y=ck) 进行替换.

现在求当k=1时,即 p(y=c1) 的估计值:

0====L(φ)p(y=c1)p(y=c1)i=1N[k=1K1I(yi=ck)lnp(y=ck)+I(yi=cK)ln(1k=1K1p(y=ck))]i=1N[I(yi=c1)p(y=c1)I(yi=cK)1K1k=1p(y=ck)]i=1N[I(yi=c1)p(y=c1)I(yi=cK)p(y=cK)]

由上式解得:
p(y=c1)=Ni=1I(yi=c1)Ni=1I(yi=cK)p(y=cK)
同理可得:
p(y=c2)=Ni=1I(yi=c2)Ni=1I(yi=cK)p(y=cK)

p(y=cK)=Ni=1I(yi=cK)Ni=1I(yi=cK)p(y=cK)

上面所有式子左右分别相加得:
p(y=c1)+p(y=c2)+...+p(y=cK)=NNi=1I(yi=cK)p(y=cK)=1
可得:
p(y=cK)=Ni=1I(yi=cK)N
将上式带入前面的 p(y=ck)(k=1,2,...,K1) ,可得:
p(y=ck)=Ni=1I(yi=ck)N
综上所述,先验概率 p(y=ck) 的极大似然估计是:

p(y=ck)=Ni=1I(yi=ck)N,k=1,2,...,K

同理,按照此方法可推导出条件概率 p(x(j)=ajl|y=ck)

参考资料
1. 李航,著. 统计学习方法[M]. 清华大学出版社,2012
2. 知乎

你可能感兴趣的:(朴素贝叶斯的参数估计)