朴素贝叶斯基于贝叶斯定理和特征条件独立假设的分类方法。
对于特定的训练数据集,首先根据特征条件独立假设学习输入/输出的联合概率分布。然后基于此模型,对给定的输入x,利用贝叶斯定理求出后验概率最大的输出y。
贝叶斯决策论
贝叶斯决策论是概率框架下实施决策的基本方法。对于分类任务,在所有相关概率都已知的情况下,贝叶斯决策论考虑如何基于这些概率和误判损失来选择最优的类别标记。
假设有N种可能的类别标记,即
y
=
{
c
1
,
c
2
,
.
.
.
c
N
}
y=\{c_1,c_2,...c_N\}
y={c1,c2,...cN}.
λ
i
j
\lambda_{ij}
λij是将一个真实标记为
c
j
c_j
cj的样本误分类为
c
i
c_i
ci所产生的损失。
基于后验概率
P
(
c
i
∣
x
)
P(c_i|x)
P(ci∣x)可获得将样本x分类为
c
i
c_i
ci所产生的期望损失
R
(
c
i
∣
x
)
=
∑
j
=
1
N
λ
i
j
P
(
c
j
∣
x
)
R(c_i|x)=\sum_{j=1}^N\lambda_{ij}P(c_j|x)
R(ci∣x)=∑j=1NλijP(cj∣x)
任务是寻找一个判定准则
h
:
x
−
>
y
h:x->y
h:x−>y以最小化整体风险
R
(
h
)
=
E
x
[
R
(
h
(
x
)
∣
x
)
]
R(h)=E_x[R(h(x)|x)]
R(h)=Ex[R(h(x)∣x)]
显然对每个样本x,若h能最小化条件风险
R
(
h
(
x
)
∣
x
)
R(h(x)|x)
R(h(x)∣x),则整体风险R(h)也被最小化。
这就产生了贝叶斯判定准则:为最小化总体风险,只需在每个样本上选择那个能使条件风险
R
(
c
∣
x
)
R(c|x)
R(c∣x)最小的类别。即
此时的 h ∗ ( x ) h^*(x) h∗(x)称为贝叶斯最优分类器,与之对应的总体风险 R ∗ ( h ) R^*(h) R∗(h)称为贝叶斯风险。 1 − R ∗ ( h ) 1-R^*(h) 1−R∗(h)反映了分类器所能达到的最好性能。
具体来说,若目标是最小化分类错误率,则误判损失
λ
i
j
\lambda_{ij}
λij可写为
此时条件风险
R
(
c
∣
x
=
1
−
P
(
c
∣
x
)
)
R(c|x=1-P(c|x))
R(c∣x=1−P(c∣x))
于是最小化分类错误率的贝叶斯分类器为
即对每个样本x,选择能使后验概率
P
(
c
∣
x
)
P(c|x)
P(c∣x)最大的类别。
首先需要获得后验概率 P ( c ∣ x ) P(c|x) P(c∣x),然而这在现实任务中难以获得。
从这个角度看,机器学习所要实现的就是基于有限的数据尽可能准的估计出后验概率 P ( c ∣ x ) P(c|x) P(c∣x)
主要有两种策略:
- 给定x,直接建模 P ( c ∣ x ) P(c|x) P(c∣x)来预测c,称为判别式模型(决策树、神经网络、SVM)
- 先对联合概率分布 P ( x , c ) P(x,c) P(x,c)建模,然后由此再获得 P ( c ∣ x ) P(c|x) P(c∣x),称为生成式模型(朴素贝叶斯)
对于生成式模型,必然考虑
P ( c ∣ x ) = P ( x , c ) P ( x ) P(c|x)=\frac{P(x,c)}{P(x)} P(c∣x)=P(x)P(x,c)
基于贝叶斯定理, P ( c ∣ x ) P(c|x) P(c∣x)可以写为
P ( c ∣ x ) = P ( x ∣ c ) ⋅ P ( c ) P ( x ) P(c|x)=\frac{P(x|c)\cdot P(c)}{P(x)} P(c∣x)=P(x)P(x∣c)⋅P(c)
其中P©是先验概率,
P
(
x
∣
c
)
P(x|c)
P(x∣c)是条件概率,也叫做似然。P(x)是用于归一化,与分类无关。
因此估计
P
(
c
∣
x
)
P(c|x)
P(c∣x)的问题也就转化为了如何根据训练数据D来估计先验
P
(
c
)
P(c)
P(c)和似然
P
(
x
∣
c
)
P(x|c)
P(x∣c)
类先验概率 P ( c ) P(c) P(c)表达了各类样本所占比例,根据大数定律,样本足够大时可通过频率来进行估计。
极大似然估计
估计类条件概率的一种常见策略是先假定其具有某种确定的概率分布形式,再基于训练样本对概率分布的参数进行估计。
记关于类别c的类条件概率为 P ( x ∣ c ) P(x|c) P(x∣c),假设 P ( x ∣ c ) P(x|c) P(x∣c)具有确定的形式并且被参数向量 θ c \theta_c θc唯一确定,我们的任务就是根据训练集估计参数 θ c \theta_c θc
事实上模型训练的过程就是参数估计的过程。对于参数估计,频率主义学派认为参数有客观存在的固定值,可通过优化似然函数求得。贝叶斯学派认为参数是未观察到的随机变量,其本身也有分布,先假设其服从一个先验分布再基于数据计算参数的后验分布。
本节介绍频率主义学派的极大似然估计,是根据数据采样来估计概率分布参数的经典方法。
令 D c D_c Dc表示数据集中第c类样本组成的集合,假设这些样本独立同分布。则参数 θ c \theta_c θc对于数据集 D c D_c Dc的似然是
对
θ
c
\theta_c
θc进行极大似然估计,就是去寻找能最大化似然函数
P
(
D
c
∣
θ
c
)
P(D_c|\theta_c)
P(Dc∣θc)的参数值
θ
c
~
\widetilde{\theta_c}
θc
,直观上看是在所有取值中找到一个最大可能性的值。
通常使用对数似然
朴素贝叶斯分类器
使用贝叶斯公式
P
(
c
∣
x
)
=
P
(
x
∣
c
)
⋅
P
(
c
)
P
(
x
)
P(c|x)=\frac{P(x|c)\cdot P(c)}{P(x)}
P(c∣x)=P(x)P(x∣c)⋅P(c)来计算后验概率的困难在于:
类条件概率
P
(
x
∣
c
)
P(x|c)
P(x∣c)是在所有属性上的联合概率,难以从有效的训练样本中估计而得。
为避开这个障碍,朴素贝叶斯分类器采用了"属性条件独立性假设":对已知类别,假设所有属性相互独立,也就是假设每个属性独立地对分类结果发生影响。
基于属性条件独立性假设,贝叶斯公式可写为
P ( c ∣ x ) = P ( x ∣ c ) ⋅ P ( c ) P ( x ) = P ( c ) P ( x ) ∏ i = 1 d P ( x i ∣ c ) P(c|x)=\frac{P(x|c)\cdot P(c)}{P(x)}=\frac{P(c)}{P(x)}\prod_{i=1}^dP(x_i|c) P(c∣x)=P(x)P(x∣c)⋅P(c)=P(x)P(c)∏i=1dP(xi∣c)
d为属性数目,
x
i
x_i
xi为x在第i个属性上的取值
由于对于所有类别来说
P
(
x
)
P(x)
P(x)相同,所以有
这就是朴素贝叶斯的表达式
显然朴素贝叶斯的训练过程就是基于训练集D来估计类先验概率 P ( c ) P(c) P(c),并为每个属性估计条件概率 P ( x i ∣ c ) P(x_i|c) P(xi∣c)
令
D
c
D_c
Dc表示训练集D中第c类样本的集合。则
P
(
c
)
=
∣
D
c
∣
∣
D
∣
P(c)=\frac{|D_c|}{|D|}
P(c)=∣D∣∣Dc∣
令
D
c
,
x
i
D_{c,x_i}
Dc,xi表示
D
c
D_c
Dc中第i个属性上取值为
x
i
x_i
xi的样本组成的集合 ,则
P
(
x
i
∣
c
)
=
∣
D
c
,
x
i
∣
∣
D
c
∣
P(x_i|c)=\frac{|D_{c,x_i}|}{|D_c|}
P(xi∣c)=∣Dc∣∣Dc,xi∣
为了避免训练集中未出现的属性值(概率为0)将整体的概率值抹去,需要进行平滑,常使用拉普拉斯修正
拉普拉斯修正避免了因训练集样本不充分而导致的概率估值为0的问题。
半朴素贝叶斯分类器
朴素贝叶斯分类器采用了属性条件独立假设,但这在实际中很难成立,于是考虑对属性条件独立假设进行一定程度的放松,这就是半朴素贝叶斯分类器
半朴素贝叶斯分类器的思想是适当考虑一部分属性间的相互依赖关系,从而既不需要进行完全联合概率计算,也不至于彻底忽略了比较强的相互依赖关系。
独依赖估计是半朴素贝叶斯分类器最常用的一种策略,假设每个属性在类别之外最多仅依赖一个其他属性。
其中
p
a
i
pa_i
pai是属性
x
i
x_i
xi所依赖的属性,称为父属性