输入空间 X⊆Rn 为 n 维向量的集合,输出空间 Y={c1,c2,...,cK} 为类标记集合设输入为特征向量 x ,输出为类标记 y 。 X 为定义在输入空间上的随机向量, Y 是定义在输出空间上的随机向量。 P(x,y) 为 X 和 Y 的联合概率分布,训练数据集 T={(x1,y1),(x2,y2),...,(xN,yN)} 由 P(X,Y) 独立同分布产生。
朴素贝叶斯的决策函数为:
模型的学习意味着估计 P(Y=ck) 和 P(X(j)=x(j)|Y=ck) . 可以使用极大似然估计(MLE)和最大后验概率估计(MAP)来进行参数估计.这里主要讨论极大似然估计。
极大似然估计适于“模型已知,参数未定”的情况. 已知某个随机样本满足某种概率分布,但是其中具体的参数不清楚,参数估计就是通过若干次试验,观察其结果,利用结果推出参数的大概值。最大似然估计是建立在这样的思想上:已知某个参数能使这个样本出现的概率最大,我们当然不会再去选择其他小概率的样本,所以干脆就把这个参数作为估计的真实值。我们所估计的模型参数,要使得产生这个给定样本的可能性最大. 该方法通常有以下几个步骤:
其中最关键的一步在于列出似然函数。
为简单起见,考虑二分类的情况,并假设变量 Y 服从伯努利分布。设 p{Y=c1}=p ,则 p{Y≠c1}={Y=c2}=1−p . 统一起来表示为 P{Y=t}=pt(1−p)1−t(t=0,1) .
事件 yi 发生的概率是 P{yi=t}=pti(1−p)1−ti . 设训练集中 c1 出现的次数为 d ,则 d=∑Ni=1I(yi=c1) .
样本联合分布为:
把 L(y1,y2,...,yN;p) 看成是 p 的函数,称为参数 p 的似然函数,记为 L(p) . 取对数似然函数 lnL(p)=dlnp+(N−d)ln(1−p) ,对其求导有:
令 ∂lnL(p)∂p =0,可解得 p=dN ,即:
前面假设 Y 服从伯努利,根据其分布函数列似然函数。事实上我们并不知道 Y 服从何种分布,此时可以假设 Y 的分布律。
令参数 P(Y=ck)=θk ,其中 k∈{1,2,...,K} 。那么 随机变量 Y 的分布律可用参数表示为
极大似然函数 L(θk;y1,y2,...,yN)=∏Ni=1P(yi)=∏Ni=1θNkK ,其中 Nk 为样本中 Y=ck 的样本数目,易知 ∑Ki=1Nk=K 。取对数的到:
由约束条件 ∑Ki=1θk=1 ,使用拉格朗日乘子法:
该函数的极值与目标函数一致,分别令其对 θ1,θ2,...,θK 的导数为0,可得到:
联立以上各式,可得: θk=NkN
我们考虑构建二元变量 (X,Y) 的联合分布。这需要 p(y=ck) 和 p(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 .
写出样本的对数似然函数:
现在来求似然函数的极大值。
考虑 p(y=ck) 系列参数,此时只需要考虑似然函数的前半部分。
其中最后一步用到了约束条件 ∑Kk=1p(y=ck)=1 ,使用了等式 p(y=cK)=1−∑K−1k=1p(y=ck) 进行替换.
现在求当k=1时,即 p(y=c1) 的估计值:
由上式解得:
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)=N∑Ni=1I(yi=cK)p(y=cK)=1
可得:
p(y=cK)=∑Ni=1I(yi=cK)N
将上式带入前面的 p(y=ck)(k=1,2,...,K−1) ,可得:
p(y=ck)=∑Ni=1I(yi=ck)N
综上所述,先验概率 p(y=ck) 的极大似然估计是:
同理,按照此方法可推导出条件概率 p(x(j)=ajl|y=ck) 。
参考资料:
1. 李航,著. 统计学习方法[M]. 清华大学出版社,2012
2. 知乎