朴素贝叶斯法
朴素贝叶斯(native Bayes)法是基于贝叶斯定理与特征条件独立假设的分类方法。
对于给定的训练集,首先基于特征条件独立假设学习输入/输出的联合概率分布;然后基于此模型,对于给定的输入x,利用贝叶斯定理求出后验概率最大的输出y。
1. 基本方法
假设输入空间X⊆Rn为n维向量的集合,输出空间为类标记集合Y={c1,c2,...,cK}。输入为特征向量x∈X,输出为类标记y∈Y。X是定义在输入空间X上的随机向量,Y是定义在输出空间Y上的随机变量。P(X,Y)是X和Y的联合概率分布。训练数据集T={(x(1),y(1)),(x(2),y(2)),...,(x(m),y(m))}是由P(X,Y)独立同分布产生的,其中每个x=(x1,x2,...,xn)是n维向量。
朴素贝叶斯法通过对给定的输入x,通过学习到的模型计算后验概率分布P(Y=ck∣X=x),然后将后验概率最大的类作为x的输出。计算后验概率:
P(Y=ck∣X=x)=P(X=x)P(Y=ck,X=x)=k=1∑KP(X=x∣Y=ck)P(Y=ck)P(X=x∣Y=ck)P(Y=ck)
其中k=1,2,...,K,可以看到分母对于所有的类标记ck都是相同的,则可以得到输出
y=argckmaxP(X=x∣Y=ck)P(Y=ck)
其中
P(Y=ck), k=1,2,...,K
是先验概率分布。
P(X=x∣Y=ck)=P(X1=x1,X2=x2,...,Xn=xn∣Y=ck), k=1,2,...,K
是条件概率分布(似然函数)。假定条件概率分布中的每个特征是条件独立的,则
P(X=x∣Y=ck)=j=1∏nP(Xj=xj∣Y=ck)
这一假设使得朴素贝叶斯法变得简单,但是会牺牲一定的分类准确率。
于是代入,可以得到:
y=f(x)=argckmaxj=1∏nP(Xj=xj∣Y=ck)P(Y=ck)
朴素贝叶斯法属于生成模型(模型给定了输入X产生输出Y的生成关系,区别于判别模型)
2. 模型的原理
首先,定义0-1损失函数:
L(Y,f(X))={10if Y≠f(X)if Y=f(X)
其中f(X)是分类决策函数的预测值,Y是真实值。这时,损失函数的期望是
Rexp(f)=E[L(Y,f(X))]
对于输入X=x,计算X=x条件下的期望损失函数,即条件期望
E[L(Y,f(X=x))∣X=x]=k=1∑KL(ck,f(X=x))P(ck∣X=x)
则在X=x条件下,求得期望风险最小化,
f(x)=argy∈Ymink=1∑KL(ck,y)P(ck∣X=x)
也就是计算每一个y∈Y,计算其条件期望,并找出其中的最小值时的y作为输出。
同时y=ck时,L(ck,y)=0,则
f(x)=argy∈Yminck≠y∑P(ck∣X=x)
然后条件概率对于所有可能的类标签总和为1,即k=1∑KP(ck∣X=x)=1,于是得到:
f(x)=argck∈Ymin(1−P(ck∣X=x))
转换成求最大:
f(x)=argck∈YmaxP(ck∣X=x)
这样便是在0-1损失函数的情况下,期望风险最小化准则得到了后验概率最大化准则,即朴素贝叶斯法的原理。