朴素贝叶斯法是基于贝叶斯定理与特征条件独立假设的分类方法。对于给定的训练数据集,首先基于特征条件独立假设学习输入/输出的联合概率分布;然后基于此模型,对给定的输入x,利用贝叶斯定理求出后验概率最大的输出y。
4.1朴素贝叶斯法的学习与分类
4.1.1基本方法
设输入空间
X⊆Rn
为n维向量的集合,输出空间为类标记集合
Y={c1,c2,...,ck}
。输入为特征向量
x∈X
,输出为类标记
y∈Y
。X是定义在输入空间X上的随机向量,Y是定义在输出空间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(X1=x1,...,Xn=xn|Y=ck),k=1,2,...,K
。于是学习到联合概率分布P(X,Y)。条件概率分布
P(X=x|Y=ck)
由指数级数量的参数,其估计实际上是不可行的。
朴素贝叶斯法对条件概率分布作了条件独立性的假设,朴素贝叶斯法也因此得名。具体地。条件独立性假设是
P(X=x|Y=ck)=P(X1=x1,…,Xn=xn|Y=ck) =∏nj=1P(Xj=xj|Y=ck)
朴素贝叶斯法实际上学习到生成数据的机制,所以属于生成模型。条件独立假设等于是说用于分类的特征在类确定的条件下都是条件独立的。这一假设使得朴素贝叶斯法变得简单,但有时会牺牲掉一定的分类准确率。
朴素贝叶斯法分类时候,对给定的输入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),k=1,2,...,K
这是朴素贝叶斯法分类的基本公式。于是,朴素贝叶斯分类器可表示为
y=f(x)=argmaxckP(Y=ck)∏jP(Xj=xj|Y=ck)∑kP(Y=ck)∏jP(Xj=xj|Y=ck)
在分母相同的情况下,可以只考虑分子,最大化分子
y=f(x)=argmaxckP(Y=ck)∏jP(Xj=xj|Y=ck)
。
4.1.2后验概率最大化的含义
后验风险概率最大化等价于期望风险最小化。
4.2朴素贝叶斯法的参数估计
4.2.1极大似然估计
在朴素贝叶斯法中,学习意味着估计
P(Y=ck)
和
P(Xj=xj|Y=ck)
。可以应用极大似然估计法估计相应的概率。先验概率
P(Y=ck)
的极大似然估计是
P(Y=ck)=∑i=1NI(yi=ck)N,k=1,2,...,K
。
设第j个特征xj可能的取值为
{aj1,aj2,...,ajSj}
,条件概率的极大似然估计为
P(Xj=ajl|Y=ck)=∑i=1NI(xji=ajl,yi=ck)∑i=1NI(yi=ck)
。
4.2.2学习与分类算法
算法4.1朴素贝叶斯算法
输入:训练数据
T={(x1,y1),(x2,y2),...,(xN,yN)}
,其中
xi=(x1i,x2i,...,xni)T
,
xji
是第i个样本的第j个特征,
xji∈{aj1,aj2,...,ajSj}
,
ajl
是第j个特征向量可能取值的第l个值,
yi∈{c1,c2,...,ck}
;实例x;
输出:实例x的分类。
(1)计算先验概率及条件概率
P(Y=ck)=∑i=1NI(yi=ck)N,k=1,2,...,K
P(Xj=ajl|Y=ck)=∑i=1NI(xji=ajl,yi=ck)∑i=1NI(yi=ck)
。
(2)对于给定的实例
x=(x1,x2,..,xn)T
,计算
P(Y=ck)∏nj=1P(Xj=xj|y=ck),k=1,2,...,K
(3)确定实例x的类
y=argmaxckP(Y=ck)∏nj=1P(Xj=xj|Y=ck)
4.2.3贝叶斯估计(拉普拉斯平滑)
用极大似然估计可能会出现所要估计的概率值为0的情况,这时会影响到后面概率的计算结果,使得分类产生偏差。解决这一问题的方法是采用贝叶斯估计。具体地,条件概率的贝叶斯估计是
Pλ(Xj=ajl|Y=ck)=∑i=1NI(xji=ajl,yi=ck)+λ∑i=1NI(yi=ck)+Sjλ
。
同样,先验概率的贝叶斯估计是
Pλ(Y=ck)=∑i=1NI(yi=ck)+λN+Kλ