7.1贝叶斯决策论
对分类任务而言,在所有相关概率已知的理想情形下,贝叶斯决策论考虑如何基于这些概率核误判损失来选择最优的类别标记。
R
(
x
i
∣
x
)
=
∑
j
=
1
N
λ
i
j
P
(
c
j
∣
x
)
\begin{equation} R(x_{i}|x)=\sum_{j=1}^{N}\lambda_{ij}P(c_{j}|x) \tag{7.1} \end{equation}
R(xi∣x)=j=1∑NλijP(cj∣x)(7.1)
h ∗ h^{*} h∗称为贝叶斯最优分类器
总体风险 R ( h ∗ ) R(h^{*}) R(h∗)称为贝叶斯风险。
1 − R ( h ∗ ) 1-R(h^{*}) 1−R(h∗)反映了分类器所能达到的最佳性能,即模型精度上限。
具体而言,若目标是最小化分类错误率,则误判损失 λ i j \lambda_{ij} λij可写为:
λ i j = { 0 i f i = j 1 o t h e r \lambda_{ij}= \begin{cases} 0 & if \quad i=j \\ 1 & other \\ \end{cases} λij={01ifi=jother
条件风险 R ( c ∣ x ) = 1 − P ( c ∣ x ) R(c|x)=1-P(c|x) R(c∣x)=1−P(c∣x)
最小化分类错误率的贝叶斯最优分类器为
对每个样本 x x x,选后验概率 P ( c ∣ x ) P(c|x) P(c∣x)最大的类别标记
机器学习所要实现的是基于有限训练样本集尽可能准确地估计出后验概率
P
(
c
∣
x
)
P(c|x)
P(c∣x),主要有两种策略
类的先验概率 P ( c ) P(c) P(c):表达了各类样本所占比例,根据大数定律,训练集包含充分独立样本, P ( c ) P(c) P(c)可通过各类样本出现频率估计。
类的条件概率 P ( x ∣ c ) P(x|c) P(x∣c):由于涉及关于 x x x所有属性的联合概率。直接根据样本估计可能遇到困难,使用频率来估计不可行,因为“未被观测到”与“出现概率为零”通常是不同的。
7.2极大似然估计
估计类条件概率记关于类别 c c c的类条件概率为 P ( x ∣ c ) P(x|c) P(x∣c),假设 P ( x ∣ c ) P(x|c) P(x∣c)具有确定的形式并且被参数向量 θ c \theta_c θc唯一确定,则我们的任务就是利用训练集 D D D估计参数 θ c \theta_c θc,将 P ( x ∣ c ) P(x|c) P(x∣c)记为 P ( x ∣ θ c ) P(x|\theta_c) P(x∣θc)
概率模型的训练过程就是参数估计的过程
参数估计两种不同方案:
- 频率主义学派,认为参数虽然未知,但客观存在,可通过优化似然函数等准则确定参数值。
- 贝叶斯派认为参数是未观察到的随机变量,其本身可有分布,因此可假设服从一个先验分布,然后基于观测到的数据来计算参数的后验分布。
极大似然估计MLE,根据数据采样来估计概率分布
令 D c D_c Dc表示训练集 D D D的第 c c c类样本集合,假设样本独立同分布。
参数
θ
c
\theta_c
θc对数据集
D
c
D_c
Dc的似然说
P
(
D
c
∣
θ
c
)
=
∏
x
∈
D
c
P
(
x
∣
θ
c
)
\begin{equation} P(D_c|\theta_c)=\prod_{x\in{D_{c}}}P(x|\theta_c) \tag{7.9} \end{equation}
P(Dc∣θc)=x∈Dc∏P(x∣θc)(7.9)
对
θ
c
\theta_c
θc进行极大似然估计,就是去寻找最大化似然
P
(
D
c
∣
θ
c
)
P(D_c|\theta_c)
P(Dc∣θc)的参数值
θ
c
^
\hat{\theta_c}
θc^
(7.9)连乘造成下溢,通常为对数似然(log-likehood)
L
L
(
θ
c
)
=
l
o
g
P
(
D
c
∣
θ
c
)
=
∑
x
∈
D
c
l
o
g
P
(
x
∣
θ
c
)
\begin{equation} LL(\theta_c)=logP(D_{c}|\theta_c) \\ =\sum_{x\in{D_c}}logP(x|\theta_c) \tag{7.10} \end{equation}
LL(θc)=logP(Dc∣θc)=x∈Dc∑logP(x∣θc)(7.10)
此时参数
θ
c
\theta_c
θc的极大似然估计
θ
c
^
\hat{\theta_c}
θc^为
θ c ^ = a r g m a x θ c L L ( θ c ) \begin{equation} \hat{\theta_c}=\underset{\theta_c}{argmax}LL(\theta_c) \tag{7.11} \end{equation} θc^=θcargmaxLL(θc)(7.11)
估计结果的准确性严重依赖所假设的概率分布形式是否符合潜在的真实数据分布。
7.3朴素贝叶斯分类器
贝叶斯公式来估计后验概率 P ( c ∣ x ) P(c|x) P(c∣x)困难在于 P ( x ∣ c ) P(x|c) P(x∣c)是所有属性的联合概率,难以从有限训练样本直接估计。
朴素贝叶斯分类器采用“属性条件独立性假设”对已知类别,假设所有属性相互独立,假设每个属性独立地对分类结果发生影响
朴素贝叶斯分类器的训练过程就是基于训练集 D D D来估计类先验概率 P ( c ) P(c) P(c),并为每个属性来估计条件概率 P ( x i ∣ c ) P(x_i|c) P(xi∣c)
D
c
D_c
Dc表示训练集
D
D
D中第
c
c
c类集合,样本充足,则类先验概率:
P
(
c
)
=
∣
D
c
∣
∣
D
∣
\begin{equation} P(c)=\frac{|D_c|}{|D|} \tag{7.16} \end{equation}
P(c)=∣D∣∣Dc∣(7.16)
离散属性而言,
D
c
,
x
i
D_{c,x_i}
Dc,xi表示
D
c
D_c
Dc中在第
i
i
i个属性上取值为
x
i
x_i
xi的样本组成的集合,则条件概率
P
(
x
i
∣
c
)
P(x_i|c)
P(xi∣c):
P
(
x
i
∣
c
)
=
∣
D
c
,
x
i
∣
∣
D
c
∣
\begin{equation} P(x_i|c)=\frac{|D_{c,x_i}|}{|D_c|} \tag{7.17} \end{equation}
P(xi∣c)=∣Dc∣∣Dc,xi∣(7.17)
下面用西瓜数据集3.0训练一个朴素贝叶斯分类器,对测试例“测1”进行分类
需注意,若某个属性值在训练中没有与某个类同时出现过,如
P 清脆 ∣ 是 = P ( 敲声 = 清脆 ∣ 好瓜 = 是 ) = 0 8 = 0 P_{清脆|是}=P(敲声=清脆|好瓜=是)=\frac{0}{8}=0 P清脆∣是=P(敲声=清脆∣好瓜=是)=80=0
此时乘积永远是 0 0 0,避免这种情况,在估计概率值时通常进行“平滑”,查用“拉普拉斯修正”
令
N
N
N表示训练集
D
D
D中可能的类别数,
N
i
N_i
Ni表示第
i
i
i个属性可能取值
7.4半朴素贝叶斯分类器
人们尝试对属性条件独立性假设进行一定程度的放松。
半朴素贝叶斯分类器基本想法:适当考虑一部分属性间的相互依赖信息,从而既不需要进行完全联合概率计算,又不至于彻底忽略了比较强的属性依赖关系。
“独依赖估计(One-Dependent Estimator,ODE)” 是半朴素贝叶斯分类器最常用的一种策略。顾名思义,所谓“独依赖”就是假设每个属性在类别之外最多仅依赖一个其他属性,即:
如何确定每个属性的父属性?不同策略的独依赖分类器又不同
所有属性都依赖于同一个属性,称为“超父”,
x
1
x_1
x1必是超父属性
AODE(Averaged One-Dependent Estimator) 尝试将每个属性作为超父构建SPODE,然后将那些具有足够训练数据支持的SPODE集成为最终结果,即:
其中
D
x
i
D_{xi}
Dxi是第
i
i
i个属性取值为
x
i
x_i
xi样本集合,
m
′
m^{'}
m′为阈值常数
AODE无需模型选择,既能通过预计算节省预测时间,也能采取懒惰学习方法在预测时在再进行计数,易于实现增量学习。
7.5贝叶斯网
贝叶斯网(Bayesian network) 亦称“信念网”(belief network),借助有向五环图(Directed Acyclic Graph,简称DAG) 刻画属性依赖关系,并使用条件概率表(Conditional Probability Table,简称CPT)来描述属性联合概率分布。
一个贝叶斯网 B B B 由结构 G G G和参数 θ \theta θ两部分组成, B = < G , θ > B=<G,\theta> B=<G,θ>
网络结构 G G G是一个有向无环图,其中每个结点对应一个属性,两属性有直接依赖关系则由一条边连接
参数
θ
\theta
θ定量描述这种依赖关系,假设属性
x
i
x_i
xi在
G
G
G中的父结点集为
π
i
\pi_{i}
πi,则
θ
\theta
θ包含了每个属性的条件概率表是
θ
x
i
∣
π
i
=
P
B
(
x
i
∣
π
i
)
\theta_{x_i|\pi_i}=P_{B}(x_i|\pi_i)
θxi∣πi=PB(xi∣πi)
7.5.1结构
贝叶斯网结构有效地表达了属性间的条件独立性,给定父结点集,贝叶斯网假设每个属性与它的非后裔属性独立。
B
=
<
G
,
θ
>
B=<G,\theta>
B=<G,θ>将属性
x
1
,
x
2
,
.
.
.
,
x
d
x_1,x_2,...,x_d
x1,x2,...,xd的联合概率分布定义为
P
B
(
x
1
,
x
2
,
.
.
.
,
x
d
)
=
∏
i
=
1
d
P
B
(
x
i
∣
π
i
)
=
∏
i
=
1
d
θ
x
i
∣
π
i
\begin{equation} P_{B}(x_1,x_2,...,x_d)=\prod_{i=1}^{d}P_{B}(x_i|\pi_i)=\prod_{i=1}^{d}\theta_{x_i|\pi_i} \tag{7.26} \end{equation}
PB(x1,x2,...,xd)=i=1∏dPB(xi∣πi)=i=1∏dθxi∣πi(7.26)
以图7.2为例,联合概率分布定义为
P
(
x
1
,
x
2
,
x
3
,
x
4
,
x
5
)
=
P
(
x
1
)
P
(
x
2
)
P
(
x
3
∣
x
1
)
P
(
x
4
∣
x
1
,
x
2
)
P
(
x
5
∣
x
2
)
P(x_1,x_2,x_3,x_4,x_5)=P(x_1)P(x_2)P(x_3|x_1)P(x_4|x_1,x_2)P(x_5|x_2)
P(x1,x2,x3,x4,x5)=P(x1)P(x2)P(x3∣x1)P(x4∣x1,x2)P(x5∣x2)
显然,
x
3
x_3
x3和
x
4
x_4
x4在给定
x
1
x_1
x1的取值时独立,
x
4
x_4
x4和
x
5
x_5
x5在给定
x
2
x_2
x2的取值时独立,
为了分析有向图中变量间的条件独立性,可使用“有向分离”
先把有向图转变为一个无向图
- 找出有向图中所有 V V V型结构,在 V V V型结构两个父结点之间加一条无向边
- 将所有有向边设为无向边
由此产生的无向图称为“道德图”,令父结点相连的过程称为“道德化”
7.5.2学习
贝叶斯网学习的首要任务就是根据训练数据集来找出结构最“恰当”的贝叶斯网
“评分搜索” 先定义一个评分函数,以此来评估贝叶斯网与训练数据的契合程度,基于评分函数在寻找结构最优的贝叶斯网
“最小描述长度” MDL准则
每个贝叶斯网描述了一个在训练数据上的概率分布,自有一套编码机制能使那些经常出现的样本有更短的编码。选择综合长度最短的网。
给定训练集 D = { x 1 , x 2 , . . . , x m } D=\{x_1,x_2,...,x_m\} D={x1,x2,...,xm},贝叶斯网 B = < G , θ > B=<G,\theta> B=<G,θ>在 D D D上的评分函数:
s
(
B
∣
D
)
=
f
(
θ
)
∣
B
∣
−
L
L
(
B
∣
D
)
\begin{equation} s(B|D)=f(\theta)|B|-LL(B|D) \tag{7.28} \end{equation}
s(B∣D)=f(θ)∣B∣−LL(B∣D)(7.28)
其中
∣
B
∣
|B|
∣B∣是贝叶斯网的参数个数;
f
(
θ
)
f(\theta)
f(θ)表示描述每个参数
θ
\theta
θ所需的字节数;
L
L
(
B
∣
D
)
=
∑
i
=
1
m
l
o
g
P
B
(
x
i
)
\begin{equation} LL(B|D)=\sum_{i=1}^{m}logP_B(x_i) \tag{7.29} \end{equation}
LL(B∣D)=i=1∑mlogPB(xi)(7.29)
S
(
B
∣
D
)
S(B|D)
S(B∣D)第1项是描述网
B
B
B字节数,第2项是
B
B
B对应概率分布
P
B
P_B
PB的字节数
-
f
(
θ
)
=
1
f(\theta)=1
f(θ)=1得AIC评分函数
A I C ( B ∣ D ) = ∣ B ∣ − L L ( B ∣ D ) \begin{equation} AIC(B|D)=|B|-LL(B|D) \tag{7.30} \end{equation} AIC(B∣D)=∣B∣−LL(B∣D)(7.30) -
f
(
θ
)
=
1
2
l
o
g
m
f(\theta)=\frac{1}{2}log^m
f(θ)=21logm得BIC评分函数
B I C ( B ∣ D ) = 1 2 l o g m ∣ B ∣ − L L ( B ∣ D ) \begin{equation} BIC(B|D)=\frac{1}{2}log^m|B|-LL(B|D) \tag{7.31} \end{equation} BIC(B∣D)=21logm∣B∣−LL(B∣D)(7.31) -
f
(
θ
)
=
0
f(\theta)=0
f(θ)=0评分函数退化为负对数似然
若网 B = < G , θ > B=<G,\theta> B=<G,θ>中 G G G固定,则 S ( B ∣ D ) S(B|D) S(B∣D)第1项为常数,参数 θ x i ∣ π i \theta_{x_i|\pi_i} θxi∣πi可直接由数据集 D D D得到:
θ x i ∣ π i = P ^ D ( x i ∣ π i ) \begin{equation} \theta_{x_i|\pi_i}=\hat{P}_D(x_i|\pi_i) \tag{7.32} \end{equation} θxi∣πi=P^D(xi∣πi)(7.32)
7.6EM算法
前面训练样本都是"完整"的,实际上并不一定都是“完整”。