朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法。对于给定的训练数据集,首先基于特征条件独立假设学习输入输出的联合概率分布;然后基于此模型。对给定的输入x,利用贝叶斯定理求出后验概率最大的输出y。
1,朴素贝叶斯法的学习与分类
设输入空间χ是n维向量的集合,输出空间为类标记集合γ={c1,c2,...,cK}.输入特征向量为x,输出为类标记y。X是在输入空间上的随机变量,Y是在输出空间上的随机变量。P(X,Y)是X和Y的联合概率分布,训练数据集
T={(x1,y1),(x2,y2),...,(xN,yN)}
由P(X,Y)独立同分布产生。 朴素贝叶斯通过训练数据集联合概率分布P(X,Y)。具体的,学习以下先验概率及条件概率,先验概率分布
P(Y=ck),k=1,2,...K
条件概率分布P(X=x|Y=ck)=P(X(1)=x(1),...,X(N)=x(N)|Y=ck),k=1,2,..,K
于是学习到联合概率分布P(X,Y)
朴素贝叶斯法对条件概率分布做了条件独立性的假设。
P(X=x|Y=ck)=P(X(1)=x(1),...,X(N)=x(N)|Y=ck)=∏j=1nP(X(j)=xj|Y=cj)
朴素贝叶斯法分类时,对给定的输入x,通过学习到的模型计算后验概率分布P(Y=ck|X=x),将后验概率最大的类作为x的类输出。后验概率计算根据贝叶斯定理;
P(Y=ck|X=x)=P(X=x|Y=ck)P(Y=ck)∑kP(X=x|Y=ck)P(Y=ck)
由于分母对所有的ck都是相同的,所以y=argmaxckP(Y=ck)∏jP(X(j)=xj|Y=ck)
2.朴素贝叶斯法的参数估计
(1)极大似然估计
在朴素贝叶斯法中,学习意味着估计P(Y=ck)和P(X(j)=xj|Y=cj).可以用极大似然估计法估计相应的概率,先验概率的极大似然估计为
P(Y=ck)=∑Ni=1I(yi=ck)N,k=1,2,...,N
设第j个特征x^{(j)}可能取值的集合为{aj1,aj2,,ajn},条件概率P(X(j)=ajl|Y=ck)的极大似然估计是P(X(j)=ajl|Y=ck)=∑Ni=1I(x(j)i=ajl,yi=ck)∑Ni=1I(yi=ck)
式中,x(j)i是第i个样本的第j个特征;ajl是第j个特征可能取得第l个值;I为指示函数。
(2)学习与分类算法
朴素贝叶斯算法
输入:训练数据T={(x1,y1),(x2,y2),...,(xN,yN)},其中xi=(x(1)i,x(2)i,...,x(n)i)T,x(j)i是第i个样本的第j个特征。
输出:实例x的分类
(1)计算先验概率及条件概率
P(Y=ck)=∑Ni=1I(yi=ck)N,k=1,2,..,K
P(X(j)=ajl|Y=ck)=∑Ni=1I(x(j)i=ajl,yi=ck)∑Ni=1I(yi=ck)j=1,2,..,N;l=1,2,..,Sj;k=1,2,..,K
(2)对于给定的实例x=(x(1),x(2),...,x(n))T,计算
P(Y=ck)∏j=1nP(X(j)=x(j)|Y=ck),k=1,2,...,K
(3)确定实例x的类
y=argmaxckP(Y=ck)∏j=1nP(X(j)=x(j)|Y=ck)
(3)贝叶斯估计
用极大似然估计可能会出现所要估计的概率值为0的估计。这时会影响到后验概率的计算结果,使分类产生误差,解决这些问题的方法是采用贝叶斯估计。
条件概率的贝叶斯估计是
Pγ(X(j)=ajl|Y=ck)=∑Ni=1I(x(j)i=ajl,yi=ck)+γ∑Ni=1I(yi=ck)+Sjγ
式中γ>=0 先验概率的贝叶斯估计为
Pγ(Y=ck)=∑Ni=1I(yi=ck)+γN+Kγ