西瓜书_chapter7_贝叶斯分类器

7.1 贝叶斯决策论

对于分类任务,贝叶斯决策论是在所有相关概率都已知的理想情形下,考虑如何基于概率和误判损失来选择最优的类别标记。
假设有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所产生的损失,那么我们可以基于后验概率来刻画把 x 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(cix)=j=1NλijP(cjx)
我们的任务是寻找一个判定准则 h h h,来最小化风险
R ( h ) = E x [ R ( h ( x ) ∣ x ) ] . R(h)=\mathbb{E}_x[R(h(x)|x)]. R(h)=Ex[R(h(x)x)].
贝叶斯判定准则:为了最小化总体风险,只需要在每个样本上选择能使条件风险 R ( c ∣ x ) R(c|x) R(cx)最小的类别标记,即
h ∗ ( x ) = arg ⁡ min ⁡ c ∈ y R ( c ∣ x ) h^*(x)=\mathop{\arg\min}\limits_{c\in y} R(c|x) h(x)=cyargminR(cx)
此时,我们把 h ∗ h^* h称为贝叶斯最优分类器,与之对应的,我们称 R ( h ∗ ) R(h^*) R(h)为贝叶斯风险, 1 − R ( h ∗ ) 1-R(h^*) 1R(h)反映了分类器能达到的最好性能。
如果我们额目标是最小化分类错误率,那么误判损失 λ i j \lambda_{ij} λij可写为
λ = 1 − I ( i , j ) \lambda=1-\mathbb{I}(i,j) λ=1I(i,j)
那么这个时候的条件风险就可以表示为
R ( c ∣ x ) = 1 − p ( c ∣ x ) R(c|x)=1-p(c|x) R(cx)=1p(cx)
最优分类器就等价于
h ∗ ( x ) = arg ⁡ max ⁡ c ∈ y P ( c ∣ x ) h^*(x)=\mathop{\arg\max}\limits_{c\in y} P(c|x) h(x)=cyargmaxP(cx)
这里给出生成式模型判别式模型的概念。
所谓生成式模型,指的是先对 P ( c , x ) P(c,x) P(c,x)进行建模,然后再得到 P ( c ∣ x ) P(c|x) P(cx);而判别式模型则是直接对 P ( c ∣ x ) P(c|x) P(cx)进行建模,如我们前边介绍的决策树、SVM等。
对于生成式模型,由贝叶斯公式
P ( c ∣ x ) = P ( c ) P ( x ∣ c ) P ( x ) = P ( c , x ) P ( x ) P(c|x)=\frac{P(c)P(x|c)}{P(x)}=\frac{P(c,x)}{P(x)} P(cx)=P(x)P(c)P(xc)=P(x)P(c,x)
注意 P ( x ) P(x) P(x)是和 c c c无关的,因此估计 P ( c ∣ x ) P(c|x) P(cx)就变为了如何基于训练数据去估计 P ( c , x ) P(c,x) P(c,x) P ( c ) P(c) P(c)
# 我们将 P ( x ∣ c ) P(x|c) P(xc)称为"似然"

7.2 极大似然估计

我们假设 P ( x ∣ c ) P(x|c) P(xc)有确定的形式,并且被参数向量 θ c \theta_c θc唯一确定。那么我们的任务就是利用训练集 D D D去估计参数 θ c \theta_c θc,我们把 P ( x ∣ c ) P(x|c) P(xc)改写为 P ( x ∣ θ ) P(x|\theta) P(xθ)
本节介绍频率主义学派的极大似然估计
我们令 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 ) P(D_c|\theta_c)=\prod_{x\in D_c}P(x|\theta_c) P(Dcθc)=xDcP(xθc)
我们要做的就是寻找能最大化上式的参数值 θ ^ c \hat{\theta}_c θ^c
上式中的累乘操作有可能会带来下溢,我们通常实用对数似然来将其转换为累加操作
L L ( θ c ) = l o g P ( D c ∣ θ c ) = ∑ x ∈ D c l o g P ( x ∣ θ c ) \begin{aligned} LL(\theta_c) &=logP(D_c|\theta_c) \\ &=\sum_{x\in D_c} logP(x|\theta_c) \end{aligned} LL(θc)=logP(Dcθc)=xDclogP(xθc)

7.3 朴素贝叶斯分类器

朴素贝叶斯分类器采用了属性条件独立性假设,即
P ( c ∣ x ) = P ( c ) P ( x ∣ c ) P ( x ) = P ( c ) P ( x ) ∏ i = 1 d P ( x i ∣ c ) P(c|x)=\frac{P(c)P(\mathbf{x}|c)}{P(\mathbf{x})}=\frac{P(c)}{P(x)}\prod_{i=1}^dP(x_i|c) P(cx)=P(x)P(c)P(xc)=P(x)P(c)i=1dP(xic)
对于所有类别来说 P ( x ) P(x) P(x)是一样的,因此,我们的判定标准可以写为
h n b ( x ) = arg ⁡ max ⁡ c ∈ y P ( c ) ∏ i = 1 d P ( x i ∣ c ) h_{nb}(x)=\mathop{\arg\max}\limits_{c\in y} P(c)\prod_{i=1}^dP(x_i|c) hnb(x)=cyargmaxP(c)i=1dP(xic)
此时,我们的任务就变成了依靠数据集 D D D来推测 P ( c ) P(c) P(c) P ( x ∣ c ) P(x|c) P(xc)。如果有充足的独立同分布的样本,那么我们就可以得到
P ( c ) = ∣ D c ∣ ∣ D ∣ P(c)=\frac{|D_c|}{|D|} P(c)=DDc
对离散属性而言,令 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(xic)可以表示为
P ( x i ∣ c ) = ∣ D c , x i ∣ ∣ D c ∣ P(x_i|c)=\frac{|D_{c,x_i}|}{|D_c|} P(xic)=DcDc,xi
对于连续属性,则可以考虑概率密度函数,我们假设 p ( x i ∣ c ) ∼ N ( μ c , i , σ c , i 2 ) p(x_i|c)\sim N(\mu_{c,i},\sigma_{c,i}^2) p(xic)N(μc,i,σc,i2),基于数据集去估计其中的参数
这里涉及到一个问题,满足某一具体类别和属性 c , x i c,x_i c,xi的样本可能并没有在数据集中出现过,但是这并不意味着其对应的概率为0,因此,我们通常需要对这个条件概率做一个平滑处理
P ^ ( c ) = ∣ D c ∣ + 1 ∣ D ∣ + N P ^ ( x i ∣ c ) = ∣ D c , x i ∣ + 1 ∣ D c ∣ + N i \hat{P}(c)=\frac{|D_c|+1}{|D|+N} \\ \hat{P}(x_i|c)=\frac{|D_{c,x_i}|+1}{|D_c|+N_i} P^(c)=D+NDc+1P^(xic)=Dc+NiDc,xi+1
其中, N i N_i Ni表示第 i i i个属性可能的取值数,我们把这种修正方式称为拉普拉斯修正,它避免了因为训练集样本不充分而导致概率估值为0的问题,而在训练集较大时,引入的先验也会逐渐变得可忽略。

7.4 半朴素贝叶斯分类器

朴素贝叶斯分类器中采用了属性条件独立性的假设,但是实际问题中通常很难满足这一点。于是我们尝试对这个假设做一定程度的放松,得到半朴素贝叶斯分类器
独依赖估计(One-Dependent Estimator, ODE)是半朴素贝叶斯分类器中最常用的一种策略,它假设每个属性在该类别之外最多依赖一个其他属性,即
P ( c ∣ x ) ∝ P ( c ) ∏ i = 1 d P ( x i ∣ c , p a i ) P(c|x)\propto P(c)\prod_{i=1}^dP(x_i|c, pa_i) P(cx)P(c)i=1dP(xic,pai)
其中, p a i pa_i pai是属性 x i x_i xi所依赖的属性,称为 x i x_i xi的父属性,这样一来,我们需要解决一个问题:如何确定每个属性对应的父属性。
一种比较直接的做法是所有属性都依赖于同一个属性,称为“超父”(SPODE),然后运用交叉验证等模型选择方法来确定超父属性。
TAN(Tree Augmented naive Bayes)则是在最大带权生成树算法的基础上,通过以下步骤将属性之间依赖关系约简为

  1. 计算任意两个属性之间的条件互信息
    I ( x i , x j ∣ y ) = ∑ x i , x j ; c ∈ y P ( x i , x j ∣ c ) log ⁡ P ( x i , x j ∣ c ) P ( x i ∣ c ) P ( x j ∣ c ) I(x_i,x_j|y)=\sum_{x_i,x_j;c\in y}P(x_i,x_j|c)\log \frac{P(x_i,x_j|c)}{P(x_i|c)P(x_j|c)} I(xi,xjy)=xi,xj;cyP(xi,xjc)logP(xic)P(xjc)P(xi,xjc)
  2. 以属性为结点构建完全图,任意两个结点之间的权重设为 I ( x i , x j ∣ y ) I(x_i,x_j|y) I(xi,xjy)
  3. 构建此完全图的最大带权生成树,挑选根变量,将边设置为有向
  4. 加入类别节点 y y y,增加从 y y y到每个属性的有向边

条件互信息刻画了两个属性之间的依赖关系,我们通过上述的过程,仅仅保留了结点之间的强依赖关系。
AODE(Averaged One-Dependent Estimator)是一种基于集成学习机制、更为强大的独依赖分类器。它尝试把每个属性作为超父,然后选择具有足够训练数据支撑的SPODE集成起来作为结果
P ( c ∣ x ) ∝ ∑ i = 1 d ∣ D x i ∣ ≥ m ′ P ( c , x i ) ∏ j = 1 d P ( x j ∣ c , x i ) P(c|x)\propto \mathop{\sum_{i=1}^d}\limits_{|D_{x_i}|\geq m' } P(c,x_i)\prod_{j=1}^dP(x_j|c,x_i) P(cx)Dximi=1dP(c,xi)j=1dP(xjc,xi)
实际上,与朴素贝叶斯分类器相似,半朴素贝叶斯分类器的学习过程也是一个计数的过程。

7.5 贝叶斯网

贝叶斯网也称为“信念网”,它借助有向无环图来刻画属性之间的依赖关系,并使用条件概率表来描述属性的联合概率分布。具体来说,一个贝叶斯网 B B B由参数 G G G和参数 Θ \Theta Θ两部分构成,即 B = < G , Θ > B=<G,\Theta> B=<G,Θ>。若两个属性有直接的依赖关系,则它们用一条边连起来;假设属性 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 结构

我们可以将属性的联合概率分布定义为
P B ( x 1 , x 2 , . . . , x d ) = ∏ i = 1 d P B ( x i ∣ π i ) = ∏ i = 1 d θ x i ∣ π i P_B(x_1,x_2,...,x_d)=\prod_{i=1}^dP_B(x_i|\pi_i)=\prod_{i=1}^d\theta_{x_i|\pi_i} PB(x1,x2,...,xd)=i=1dPB(xiπi)=i=1dθxiπi
贝叶斯网中三个变量之间的典型依赖关系:同父结构、V型结构、顺序结构
为了分析有向图中变量间的条件独立性,可以使用“有向分离”

  • 找出图中所有的V型结构,在两个父结点之间加上一条无向边
  • 将所有的有向边改为无向边

7.5.2 学习

7.5.3 推测

7.6 EM算法

在前边的讨论中,我们一直假设训练样本的所有属性变量的值都是已经被观测到的,在实际应用中,有时会出现一些未观测或无法观测的变量,学名叫“隐变量”。
我们令 X \mathbf{X} X表示已经观测的变量, Z \mathbf{Z} Z表示隐变量集,令 Θ \Theta Θ表示模型参数。
EM算法的基本思想是:如果参数 Θ \Theta Θ已知,则可以根据训练数据推断出最优的隐变量 Z \mathbf{Z} Z的值;反之, Θ \Theta Θ也可以用 Z \mathbb{Z} Z推出。
于是,我们可以以初始值 Θ 0 \Theta^0 Θ0为起点,迭代至收敛

  • 基于 Θ t \Theta_t Θt推断隐变量 Z \mathbf{Z} Z的期望,记为 Z t \mathbf{Z}^t Zt;
  • 基于 X , Z \mathbf{X},\mathbf{Z} X,Z来对参数 Θ \Theta Θ进行极大似然估计,得到 Θ t + 1 \Theta^{t+1} Θt+1;

这就是EM算法的原型
进一步地,如果我们不取 Z \mathbf{Z} Z的期望,而是取其概率分布,则其算法的两个步骤是:

  • E: 依据当前的参数 Θ t \Theta^t Θt推断隐变量分布 P ( Z ∣ X , Θ t ) P(Z|X,\Theta^t) P(ZX,Θt),并计算对数似然 L L ( Θ ∣ X , Z ) LL(\Theta|X,Z) LL(ΘX,Z)关于 Z \mathbf{Z} Z的期望
    Q ( Θ ∣ Θ t ) = E Z ∣ X , Θ t L L ( Θ ∣ X , Z ) Q(\Theta|\Theta^t)=\mathbb{E}_{\mathbf{Z|X,\Theta^t}}LL(\Theta|\mathbf{X},\mathbf{Z}) Q(ΘΘt)=EZX,ΘtLL(ΘX,Z)
  • M: 寻求参数最大化期望似然,即
    Θ t + 1 = arg ⁡ max ⁡ Θ Q ( Θ ∣ Θ t ) \Theta^{t+1}=\mathop{\arg \max}\limits_\Theta Q(\Theta|\Theta^t) Θt+1=ΘargmaxQ(ΘΘt)

你可能感兴趣的:(西瓜书笔记)