朴素贝叶斯法需要估计参数P(Y=ck)和P(Xj=xj∣Y=ck)
y=f(x)=argckmaxj=1∏nP(Xj=xj∣Y=ck)P(Y=ck) 假定数据集T={(x(1),y(1)),(x(2),y(2)),...,(x(m),y(m))},其中x∈X⊆Rn,y∈Y={c1,c2,...,cK}。X是定义在输入空间X上的n维随机向量,Y是定义在输出空间Y上的随机变量。
1. 极大似然估计
应用极大似然估计法估计相应参数。
先验概率P(Y=ck)的极大似然估计是:
P(Y=ck)=mi=1∑mI(y(i)=ck), k=1,2,...,K 其中I(yi=ck)是指示函数,当yi=ck时值为1,其他情况下为0。m为数据集里的数据量。
假定输入的n维特征向量x的第j维可能的取值为{xj1,xj2,...xjsj},则条件概率P(Xj=xjl∣Y=ck)的极大似然估计是:
P(Xj=xjl∣Y=ck)=i=1∑mI(y(i)=ck)i=1∑mI(xj(i)=xjl,y(i)=ck) 求导可以得到
得到:
证明完毕。其他更多的详细证明请参考以上链接。
2. 贝叶斯估计
用极大似然估计可能出现所要估计的参数值为0的情况,这会影响到连乘时的值直接为0,使分类结果产生偏差。解决这一问题的方法是采用贝叶斯估计。
条件概率的贝叶斯估计是
先验概率的贝叶斯估计是
示例
极大似然估计:
j=1,2,...,n; l=1,2,...,sj; k=1,2,...,K 其中xj(i)是第i个样本的第j个特征,xjl是第j个特征的可能取的第l个值,I为指示函数。
令参数P(Y=ck)=θk, k=1,2,...,K。则随机变量Y的概率可以用参数来表示为P(Y)=k=1∑KθkI(Y=ck),其中I是指示函数。极大似然函数
L(θk;y(1),y(2),...,y(m))=i=1∏mp(y(i))=k=1∏Kθktk 其中m是样本总数,tk为样本中Y=ck的样本数目,满足k=1∑Ktk=m。取对数得到
ln(L(θk))=k=1∑Ktklnθk 要求该函数的最大值,同时有约束条件k=1∑Kθk=1。利用拉格朗日乘子法,
l(θk,λ)=k=1∑Ktklnθk+λ(k=1∑Kθk−1) ∂θk∂l(θk,λ)=θktk+λ=0 tk=−λθk, k=1,2,...,K 将所有的K个式子加起来,得到k=1∑Ktk=−k=1∑Kλθk,同时结合约束条件k=1∑Kθk=1,可得λ=−m。最终可得
P(Y=ck)=θk=mtk Pλ(Xj=xjl∣Y=ck)=i=1∑mI(y(i)=ck)+sjλi=1∑mI(xj(i)=xjl,y(i)=ck)+λ 式中λ⩾0,sj是特征向量的第j维可能的取值数量。显然Pλ(Xj=xjl∣Y=ck)>0,且l=1∑sjPλ(Xj=xjl∣Y=ck)=1。
这等价于在随机变量各个取值的频数上赋予一个正数λ>0。当λ=0时,就是极大似然估计。常取λ=1,这时称为拉布普拉斯平滑(Laplace smoothing)。
Pλ(Y=ck)=m+Kλi=1∑mI(y(i)=ck)+λ 同样λ⩾0。
由下表的训练数据学习一个朴素贝叶斯分类器并确定x=(2,S)T的类标记y。
表中X1,X2为特征,取值的集合分别为A1={1,2,3},A2={S,M,L},Y为类标记,Y∈C={1,−1}。
P(Y=1)=159,P(Y=−1)=156
P(X1=1∣Y=1)=92,P(X1=2∣Y=1)=93,P(X1=3∣Y=1)=94
P(X2=S∣Y=1)=91,P(X2=M∣Y=1)=94,P(X2=L∣Y=1)=94
P(X1=1∣Y=−1)=63,P(X1=2∣Y=−1)=62,P(X1=3∣Y=−1)=61
P(X2=S∣Y=−1)=63,P(X2=M∣Y=−1)=62,P(X2=L∣Y=−1)=61
对于给定的x=(2,S)T计算:
P(Y=1)P(X1=2∣Y=1)P(X2=S∣Y=1)=159⋅93⋅91=451
P(Y=−1)P(X1=2∣Y=−1)P(X2=S∣Y=−1)=156⋅62⋅63=151
当Y=−1时比较大,所以y=−1。
拉普拉斯平滑估计(λ=1):
P(Y=1)=1710,P(Y=−1)=177
P(X1=1∣Y=1)=123,P(X1=2∣Y=1)=124,P(X1=3∣Y=1)=125
P(X2=S∣Y=1)=122,P(X2=M∣Y=1)=125,P(X2=L∣Y=1)=125
P(X1=1∣Y=−1)=94,P(X1=2∣Y=−1)=93,P(X1=3∣Y=−1)=92
P(X2=S∣Y=−1)=94,P(X2=M∣Y=−1)=93,P(X2=L∣Y=−1)=92
对于给定的x=(2,S)T计算
P(Y=1)P(X1=2∣Y=1)P(X2=S∣Y=1)=1710⋅124⋅122=1535=0.03
P(Y=−1)P(X1=2∣Y=−1)P(X2=S∣Y=−1)=177⋅93⋅94=45928=0.06
由于Y=−1时,比较大,所以y=−1。