贝叶斯分类器
贝叶斯决策论
贝叶斯决策论是概率框架下实施决策的基本方法。
假设有N中可能的类别标记,即
Y
=
{
c
1
,
c
2
,
.
.
.
,
c
N
}
,
λ
i
j
\mathcal{Y}=\{c_1, c_2,...,c_N\}, \lambda_{ij}
Y={c1,c2,...,cN},λij是将一个真实标记的
c
j
c_j
cj的样本误分类成
c
i
c_i
ci所产生的损失。基于后验概率
P
(
c
i
∣
x
)
P(c_i|\bm{x})
P(ci∣x)可获得将样本
x
\bm{x}
x分类成
c
i
c_i
ci所产生的期望损失,即样本
x
\bm{x}
x上的“条件风险”。
R
(
c
i
∣
x
)
=
∑
j
=
1
N
λ
i
j
P
(
c
j
∣
x
)
R(c_i|\bm{x}) = \sum_{j=1}^{N}\lambda_{ij}P(c_j|\bm{x})
R(ci∣x)=j=1∑NλijP(cj∣x)
-
我们的任务是找到一个判定准则 h : X − > Y h: \mathcal{X}->\mathcal{Y} h:X−>Y以最小化总体方差。
R ( h ) = E [ R ( h ( x ) ∣ x ) ] R(h) = \mathbb{E}[R(h(\bm{x})|\bm{x})] R(h)=E[R(h(x)∣x)] -
对于每个样本 x \bm{x} x,若 h 能 最 小 化 条 件 风 险 R ( h ( x ) ∣ x ) , 则 总 体 风 险 R ( h ) 也 将 被 最 小 化 。 h能最小化条件风险R(h(\bm{x})|\bm{x}),则总体风险R(h)也将被最小化。 h能最小化条件风险R(h(x)∣x),则总体风险R(h)也将被最小化。这就产生了
贝叶斯判定准则
: 为最小化风险,只需在每个样本上选择那个能使条件风险 R ( c ∣ x ) R(c|\bm{x}) R(c∣x)最小的类别标记。
h ∗ ( x ) = a r g min c ∈ Y R ( c ∣ x ) h^*(\bm{x}) = arg \min \limits_{c \in \mathcal{Y}}R(c|\bm{x}) h∗(x)=argc∈YminR(c∣x)
h ∗ 被 称 为 贝 叶 斯 最 优 分 类 器 , R ( h ∗ ) 称 为 贝 叶 斯 风 险 。 1 − R ( h ∗ ) 反 映 了 分 类 器 所 能 达 到 的 最 好 性 能 。 h^*被称为贝叶斯最优分类器,R(h^*)称为贝叶斯风险。1-R(h^*)反映了分类器所能达到的最好性能。 h∗被称为贝叶斯最优分类器,R(h∗)称为贝叶斯风险。1−R(h∗)反映了分类器所能达到的最好性能。
-
若目标是最小化分类错误率,误判损失 λ i j \lambda_{ij} λij可写为:
λ i j = { 0 , i f i = j ; 1 , o t h e r w i s e , \lambda_{ij}= \begin{cases} 0, & if \quad i = j;\\ 1, & otherwise, \end{cases} λij={0,1,ifi=j;otherwise, -
此时条件风险:
R ( c ∣ x ) = 1 − P ( c ∣ x ) R(c|\bm{x}) = 1 - P(c|\bm{x}) R(c∣x)=1−P(c∣x) -
于是,最小化分类错误率的贝叶斯最优分类器为:
h ∗ ( x ) = a r g max c ∈ Y P ( c ∣ x ) h^*(\bm{x}) = arg \max \limits_{c \in \mathcal{Y}}P(c|\bm{x}) h∗(x)=argc∈YmaxP(c∣x)
即对每个样本 x x x, 选择能使后验概率 P ( c ∣ x ) P(c |\bm{x}) P(c∣x)最大的类别标记.
主要有两种策略:给定 x x x, 可通过直接建模 P ( c ∣ x ) P(c|\bm{x}) P(c∣x) 来预测 c c c,这样得到的是"判别式模型" (discriminative models); 也可先对联合概率分布 P ( x , c ) P(\bm{x},c) P(x,c)建模,然后再由此获得 P ( c ∣ x ) P(c|\bm{x}) P(c∣x) , 这样得到的是"生成式模型" (generative models) 显然,前面介绍的决策树、BP 神经网络、支持向量机等,都可归入判别式模型的范畴。
-
对生成式模型来说,必然考虑
P ( c ∣ x ) = P ( x , c ) P ( x ) P(c|\bm{x}) = \frac{P(\bm{x},c)}{P(\bm{x})} P(c∣x)=P(x)P(x,c) -
基于贝叶斯定理:
P ( c ∣ x ) = P ( c ) P ( x ∣ c ) P ( x ) P(c|\bm{x}) = \frac{P(c)P(\bm{x}|c)}{P(\bm{x})} P(c∣x)=P(x)P(c)P(x∣c)
P ( c ) 是 类 " 先 验 " ( p r i o r ) 概 率 ; 表 达 了 各 类 样 本 所 占 的 比 例 P(c) 是类"先验"(prior)概率;表达了各类样本所占的比例 P(c)是类"先验"(prior)概率;表达了各类样本所占的比例
P ( x ∣ c ) 是 样 本 x 相 对 于 类 标 记 c 的 类 条 件 概 率 ( c l a s s − c o n d i t i o n a l p r o b a b i l i t y ) , 或 称 为 " 似 然 " ( l i k e l i h o o d ) P(\bm{x}|c)是样本x相对于类标记c 的类条件概率(class-conditional probability) ,或称为"似然" (likelihood) P(x∣c)是样本x相对于类标记c的类条件概率(class−conditionalprobability),或称为"似然"(likelihood);
P ( x ) 是 用 于 归 一 化 的 " 证 据 " ( e v i d e n c e ) 因 子 P(\bm{x}) 是用于归一化的"证据" (evidence) 因子 P(x)是用于归一化的"证据"(evidence)因子
最大似然估计(MLE)
估计类条件概率的一种常用策略是先假定其具有某种确定的概率分布形式,再基于训练样本对概率分布的参数进行估计,记关于类别 c c c 的类条件概率为 P ( x ∣ c ) P(\bm{x}|c) P(x∣c) , 假设 P ( x ∣ c ) P(\bm{x}|c) P(x∣c) 具有确定的形式并且被参数向量。 c c c 唯一确定,则我们的任务就是利用训练集 D D D 估计参数 θ c θ_c θc. 为明确起见,我们将 P ( x ∣ c ) 记 为 P ( x ∣ θ c ) P(\bm{x}|c)记为P(\bm{x}|\theta_c) P(x∣c)记为P(x∣θc)。
- 令
D
C
D_C
DC表示训练集
D
D
D中第c类样本组成的集合,假设这些样本是独立同分布的,则参数
θ
c
\bm{\theta}_c
θc对于数据集
D
C
D_C
DC的依然是:
P ( D c ∣ θ c ) = Π x ∈ D c P ( x ∣ θ c ) P(D_c | \bm{\theta}_c) = \Pi_{\bm{x}\in D_c} P(\bm{x} | \bm{\theta}_c) P(Dc∣θc)=Πx∈DcP(x∣θc)
对 θ c \theta_c θc 进行极大似然估计,就是去寻找能最大化似然 P ( D c ∣ θ c ) P(D_c |\theta_c) P(Dc∣θc)的参数值 θ c \theta_c θc ,直观上看,极大似然估计是试图在 θ c \theta_c θc 所有可能的取值中,找到一个能使数据出现的"可能性"最大的值。
-
连乘操作容易造成下溢,通常使用对数似然
L L ( θ c ) = l o g P ( D c ∣ θ c ) = ∑ x ∈ D c l o g P ( x ∣ θ c ) LL(\bm{\theta}_c) = logP(D_c|\bm{\theta}_c)\\=\sum_{\bm{x} \in D_c} logP(\bm{x} | \bm{\theta}_c) LL(θc)=logP(Dc∣θc)=x∈Dc∑logP(x∣θc) -
参数 θ c \bm{\theta}_c θc的极大似然估计 θ ^ c \widehat{\bm{\theta}}_c θ c为:
θ ^ c = a r g max θ c L L ( θ c ) . \widehat{\bm{\theta}}_c = arg \max \limits_{\bm{\theta}_c} LL(\bm{\theta}_c). θ c=argθcmaxLL(θc). -
再连续属性情形下,假设概率密度函数 p ( x ∣ c ) ∼ N ( μ c , σ c 2 ) p(\bm{x} | c) \sim \mathcal{N}(\bm{\mu}_c,\bm{\sigma}^2_c) p(x∣c)∼N(μc,σc2),对参数 μ c , σ c 2 \bm{\mu}_c,\bm{\sigma}^2_c μc,σc2的极大似然估计是:
μ ^ c = 1 ∣ D c ∣ ∑ x ∈ D c x σ ^ c 2 = 1 ∣ D c ∣ ∑ x ∈ D c ( x − μ ^ c ) ( x − μ ^ c ) T \widehat{\bm{\mu}}_c = \frac{1}{|D_c|}\sum_{\bm{x} \in D_c}\bm{x} \\ \widehat{\bm{\sigma}}^2_c = \frac{1}{|D_c|}\sum_{\bm{x} \in D_c}(\bm{x} -\widehat{\bm{\mu}}_c )(\bm{x} -\widehat{\bm{\mu}}_c )^T μ c=∣Dc∣1x∈Dc∑xσ c2=∣Dc∣1x∈Dc∑(x−μ c)(x−μ c)T
朴素贝叶斯分类
基于贝叶斯公式来估计后验概率 P ( c ∣ x ) P(c|\bm{x}) P(c∣x)的主要k困难在于:类条件概率 P ( x ∣ c ) P(\bm{x}|c) P(x∣c)是所有属性上的联合概率,难以从有限的训练样本直接估计而得。为避开这个障碍,朴素贝叶斯分类器(naÏve Bayes classifier) 采用了"属性条件独立性假设" (attribute conditional i时ependence assu’mption): 对已知类别,假设所有属性相互独立。换言之,假设每个属性独立地对分类结果发生影响.
- 基于属性条件独立性假设
P ( c ∣ x ) = P ( c ) P ( x ∣ c ) P ( x ) = P ( c ) P ( x ) Π i = 1 d P ( x i ∣ c ) P(c|\bm{x}) = \frac{P(c)P(\bm{x}|c)}{P(\bm{x})} = \frac{P(c)}{P(\bm{x})} \Pi_{i=1}^{d}P(x_i|c) P(c∣x)=P(x)P(c)P(x∣c)=P(x)P(c)Πi=1dP(xi∣c)
d d d为属性数目, x i x_i xi为 x \bm{x} x再第i个属性上的取值
- 基于贝叶斯判定准则,朴素贝叶斯分类器的表达式为:
h n b ( x ) = a r g max c ∈ Y P ( c ) Π i = 1 d P ( x i ∣ c ) h_{nb}(\bm{x}) = arg \max \limits_{c \in \mathcal{Y}}P(c)\Pi_{i=1}^{d}P(x_i|c) hnb(x)=argc∈YmaxP(c)Πi=1dP(xi∣c)
令 D c D_c Dc表示训练集 D D 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∣
对于连续属性可考虑概率密度函数,假定 p ( x i ∣ c ) ∼ N ( μ c , i , σ c , i 2 ) p(x_i | c) \sim \mathcal{N}(\mu_{c,i},\sigma^2_{c,i}) p(xi∣c)∼N(μc,i,σc,i2),其中 μ c , i , σ c , i 2 \mu_{c,i},\sigma^2_{c,i} μc,i,σc,i2分别是第 c c c类样本再第 i i i个属性上取值的均值和方差: p ( x i ∣ c ) = 1 2 π σ c , i e x p ( − ( x i − μ c , i ) 2 2 σ c , i 2 ) p(x_i | c) = \frac{1}{{\sqrt{2\pi}\sigma_{c,i}}}exp(-\frac{(x_i-\mu_{c,i})^2}{2\sigma_{c,i}^2}) p(xi∣c)=2πσc,i1exp(−2σc,i2(xi−μc,i)2)
例子
用西瓜数据集3.0训练一个朴素贝叶斯分类器,对测试集进行分类:
训练集
测试集
-
首先估计类先验概率 P ( c ) P(c) P(c):
-
为每个属性估计条件概率 P ( x i ∣ c ) P(x_i|c) P(xi∣c)
-
于是有:
由于 0.038 > 6.80 ∗ 1 0 5 0.038 > 6.80 * 10^5 0.038>6.80∗105, 因此朴素贝叶斯分类器将测试样本判为"好瓜"。
拉普拉斯修正
但是有这样一种情况,若某个属性值再训练集中没有与某个类同时出现过,直接计算会出现问题,如:
如果连乘,则结果必定为0,因此无论什么属性,都会将好瓜分类错误。
- 为了避免这种情况,在估计概率值时通常要进行"平滑",常用"拉普拉斯修正":
P ^ ( c ) = ∣ D c ∣ + 1 ∣ D ∣ + N P ( x i ∣ c ) = ∣ D c , x i ∣ + 1 ∣ D c ∣ + N i \widehat{P}(c) = \frac{|D_c| + 1}{|D| + N}\\ P(x_i|c) = \frac{|D_{c,x_i}| + 1}{|D_c| + N_i} P (c)=∣D∣+N∣Dc∣+1P(xi∣c)=∣Dc∣+Ni∣Dc,xi∣+1
N 表 示 训 练 集 D 可 能 的 类 别 数 , N i 表 示 第 i 个 属 性 可 能 的 取 值 数 N表示训练集D可能的类别数,N_i表示第i个属性可能的取值数 N表示训练集D可能的类别数,Ni表示第i个属性可能的取值数
EM算法
在前面的讨论中,我们一直假设训练样本所有属性变量的值都已被观测到,即训练样本是"完整"的.但在现实应用中往往会遇到"不完整"的训练样本,例如由于西瓜的根蒂己脱落,无法看出是"蜷缩"还是"硬挺",则训练样本的"根蒂"属性变量值未知.在这种存在"未观测"变量的情形下,是否仍能对模型参数进行估计呢?
未观测变量的学名是"隐变量" (latent variable).