简介
朴素贝叶斯(naive Bayes)法师基于贝叶斯定理与特征条件独立假设的分类方法。对于给定的训练数据集,首先基于特征条件独立假设学习输入输出的联合概率分布;然后基于此模型,对于给定的输入x,利用贝叶斯定理求出后验概率最大的输出y。
先验概率:指以往经验和分析得到的概率,指人在未知条件下对事情发生的可能性的数学表示。
后验概率:事情已经发生,且发生的原因是由某个因素引起的可能性大小。
贝叶斯公式:
P(A|B)=P(A,B)P(B)=P(B|A)∗P(A)P(B|A)∗P(A)+P(B|C)∗P(C)
其中下面的分母是P(B)的全概率展开式。
全概率公式:事件组
B1,B2..
满足两两互斥且并集是一个空间,则对于任意的事件A,有:
P(A)=∑i=1∞P(Bi)P(A|Bi)
朴素贝叶斯法的学习与分类
基本方法
假设输入空间
X⊆Rn
为n维向量的集合,输出空间为类标记集合
Y=c1,c2,...ck
。
P(X,Y)
是X和Y的联合概率分布,训练数据集x,y对由独立同分布产生。
朴素贝叶斯法通过训练数据学习联合概率分布
P(X,Y)
,具体的,学习以下概率分布:
- 先验概率分布
P(Y=ck), k=1,2,...,K(4.1)
-
条件概率分布
P(X=x|Y=ck)=P(X(1)=x(1),...,X(n)=x(n)|Y=ck), k=1,2,...K(4.2)
于是学习到联合概率分布
P(X,Y)
,其中条件概率分布
P(X=x|Y=ck)
有指数级别的参数,其估计实际是不可行的。假设
x(j)
可能值有
Sj
个,j=1,2,….n, Y可能取址有K个,那么参数的个数为
K∏nj=1Sj
条件独立性假设是:
P(X=x|Y=ck)=P(X(1)=x(1),...,X(n)=x(n)|Y=ck)=∏j=1nP(X(j)=x(j)|Y=ck)(4.3)
朴素贝叶斯法实际上学习到生成数据的机制,属于生成模型,条件独立假设等于说用于分类的特征在类确定的条件下都是条件独立的。分类时,对于给定的输入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)(4.4)
将(4.3)代入(4.4)有就得到了朴素贝叶斯法的基本公式,取其中的最大值,则朴素贝叶斯分类器就可以表示为:
y=f(x)=argmaxck P(Y=ck)∏jP(X(j)=x(j)|Y=ck)∑kP(Y=ck)∏jP(X(j)=x(j)|Y=ck)(4.6)
其中式子(4.6)中分母对所有的
ck
都是相同的,所以:
y=argmaxck P(Y=ck)∏jP(X(j)=x(j)|Y=ck)(4.7)
后验概率最大化含义
朴素贝叶斯法将实例分到后验概率最大的类中,这等价于期望风险最小化。假设选择0-1损失函数:
L(Y,f(X))={1,Y≠f(x)0,Y=f(x)
其中f(X)是分类决策函数,这时,期望风险函数为:
Rexp(f)=E[L(Y,f(X))]
期望是对联合分布P(X,Y)取得,由此取
条件期望:
Rexp(f)=EX∑k=1K[L(ck,f(X))]P(ck|X)
为了使得期望风险最小化,只需对X=x逐个最小化,由此得到:
f(x)=argminy∈Y∑k=1KL(ck,y)P(ck|X=x)=argminy∈Y∑k=1KP(y≠ck|X=x)=argminy∈Y(1−P(y=ck|X=x))=argmaxy∈YP(y=ck|X=x)
这样一来,根据期望风险最小化准则就得到了后验概率最大化准则,即朴素贝叶斯法所采用的原理:
f(x)=argmaxy∈YP(ck|X=x)
注:现对上面用到的两个概念作解释:
- 损失函数期望公式:
损失函数越小, 模型就越好,模型遵循联合分布
P(X,Y)
,所以损失函数的期望为:
Rexp(f)=Ep[L(Y,f(X))]=∫x×yL(y,f(x))P(x,y)dxdy
这是理论模型
f(x)
关于联合分布
P(X,Y)
的平均意义下的损失称为风险函数或者期望损失。
然后应用到上面的期望风险函数可以将
Rexp(f)=E[L(Y,f(X))]
凑成如下的公式:
Rexp(f)=E[L(Y,f(X))]=∫x(∫yL(Y,f(X))p(y(x))dy)p(x)dx
其中的dy积分项就是条件期望。
- 条件期望最小化推导
其中
ck
为模型的输出类,y为真实类,对于一个确定的输入X=x,判断输出类为哪一个时损失期望最小,由于使用的是0-1风险函数,所以损失函数等价于模型错误输出概率。
朴素贝叶斯法的参数估计
极大似然估计
在朴素贝叶斯法中,学习意味着估计
P(Y=ck)
和
P(X(j)=x(j)|Y=ck)
,可以用极大似然估计法估计相应的概率。设第j个特征
x(j)
可能的取值的集合为{a_j1,a_j2,…,a_{jS_j}}。
- 先验概率
P(Y=ck)
的极大似然估计是:
P(Y=ck)=∑Ni=1I(yi=ck)N ,k=1,2,...K(4.8)
- 条件概率
P(X(j)=ajl|Y=ck)
的极大似然估计是
P(X(j)=x(j)|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(4.9)
其中
x(j)i
是第i个样本的第j个特征;
ajl
是第j个特征可能取得第l个值;I为指示函数。
学习与分类算法
朴素贝叶斯算法(naive Bayes algorithm)
输入:训练数据对T,其中
x(j)i
是第i个样本的第j个特征,
x(j)i∈aj1,aj2,...,ajSj
,
ajl
是第j个特征的第l个值。
输出:实例x的分类
- (1)计算先验概率及条件概率
P(Y=ck)=∑Ni=1I(yi=ck)N ,k=1,2,...K
P(X(j)=a(jl)|Y=ck)=∑Ni=1I(x(j)i=ajl,yi=ck)∑Ni=1I(yi=ck)
- (2)对于给定的实例
x=(x(1),x(2),...,x(n))T
,计算
P(Y=ck)∏jP(X(j)=x(j)|Y=ck)
- (3)确定实例x的类
y=argmaxck P(Y=ck)∏jP(X(j)=x(j)|Y=ck)
贝叶斯估计
用极大似然估计肯能会出现估计的概率为0的情况,这会影响到后验概率的计算。解决这一问题的方法是采用贝叶斯估计,条件概率的贝叶斯估计是:
Pλ(X(j)=a(jl)|Y=ck)=∑Ni=1I(x(j)i=ajl,yi=ck)+λ∑Ni=1I(yi=ck)+Sjλ(4.10)
其中
λ≥0
,等价于在随机变量各个取值的频数上赋予一个正数
λ>0
,当
λ=0
时就是极大似然估计,常取
λ=1
,这时称为
拉普拉斯平滑,对于任何的
l=1,2,...,Sj,k=1,2,..,K
,有
Pλ(X(j)=ajl|Y=ck)>0∑l=1SjP(X(j)=ajl|Y=ck)=1
表明式子(4.10)确实为一种概率分布,同样,
先验概率的贝叶斯估计是
Pλ(Y=ck)=∑Ni=1I(yi=ck)+λN+Kλ(4.11)
小结
- 朴素贝叶斯法是典型的生成学习方法。生成方法由训练数据学习联合概率分布
P(X,Y)
,然后求得后验概率分布
P(Y|X)
,概率估计方法可以是极大似然估计或贝叶斯估计。
- 朴素贝叶斯的基本假设是条件独立性。这一假设使得模型包含的条件概率的数量大为减少,使得它简化。因此朴素贝叶斯比较高效,易于实现,但是分类的性能不一定很高。
- 朴素贝叶斯利用贝叶斯定理和学到的联合概率模型进行分类预测。将输入x分到后验概率最大的类y,后验概率最大等价于0-1损失函数时的期望风险最小化。