贝叶斯分类器

贝叶斯决策论是概率框架下实施决策的基本方法,也就是考虑如何基于概率和误判损失来选择最优的类别标记


贝叶斯框架下,损失函数由条件风险定义,而条件风险基于后验概率:条件风险\(R(c_i|\boldsymbol{x})\)表示将样本x分类为\(c_i\)所产生的期望损失,\(R(c_i|\boldsymbol{x})=\sum \limits_{j=1}^{N} \lambda_{ij}P(c_j|\boldsymbol{x})\)
对于一个分类方式\(h : \mathcal{X} \mapsto \mathcal{Y}\),其总体风险为\(R(h) = \mathbb{E}_{\boldsymbol{x}} \left[ R(h(\boldsymbol{x}) \mid \boldsymbol{x}) \right]\)
从而由贝叶斯判定准则:为最小化总体风险,只需在每个样本上选择那个能使条件风险\(R(c|\boldsymbol{x})\)最小的类别标记
这样得到的分类器\(h^*\)称为贝叶斯最优分类器,而与之对应的总体风险\(R(h^*)\)称为贝叶斯风险,\(1-R(h^*)\)反映了分类器所能达到的最好性能,集模型精度的理论上限
容易得到,若误判函数是一个指示函数,那么判定准则等价于选择使后验概率\(P(c|\boldsymbol{x})\)最大的类别标记

极大似然估计(MLE)

先假定其具有某种确定的概率分布形式,再基于训练样本对概率分布的参数进行估计
具体来说,先找到参数所对应的似然函数,然后通过对似然函数进行求导或其他操作得到使似然函数最大的参数值
例如,\(D_c\)是训练集D中第c类样本组成的集合,假使这些样本是独立同分布的,则参数\(\boldsymbol{\theta_c}\)对于数据集\(D_c\)的似然是\(P(D_c \mid \theta_c) = \prod_{\boldsymbol{x} \in D_c} P(\boldsymbol{x} \mid \theta_c)\)
连乘操作容易产生下溢(计算结果的绝对值小于计算机浮点数所能表示的最小值,从而导致数值被近似为零),因此通常采用对数似然\(LL(\theta_c) = \log P(D_c \mid \theta_c) = \sum_{\boldsymbol{x} \in D_c} \log P(\boldsymbol{x} \mid \theta_c)\)
此时极大似然估计 \(\hat{\theta}_c = \arg \max\limits_{\theta_c} LL(\theta_c)\)

朴素贝叶斯分类器

如果基于贝叶斯公式来计算后验概率,则我们需要计算出类条件概率\(P(\boldsymbol{x} | c)\),也就是所有属性上的联合概率,这是难以计算的
于是朴素贝叶斯采用属性条件独立假设:对于已知类别,所有属性相互独立。也就是每个属性独立地对分类结果发生影响
基于此,贝叶斯公式可以转换为\(P(c \mid \boldsymbol{x}) = \frac{P(c) P(\boldsymbol{x} \mid c)}{P(\boldsymbol{x})} = \frac{P(c)}{P(\boldsymbol{x})} \prod_{i=1}^{d} P(x_i \mid c)\)
贝叶斯判定准则可以等价表示为\(h_{\text{nb}}(\boldsymbol{x}) = \arg \max \limits_{c \in \mathcal{Y}} P(c) \prod_{i=1}^{d} P(x_i \mid c)\)
此时这些类先验概率和条件概率在充足的独立同分布样本下集就可以估计得到:\(P(c) = \frac{|D_c|}{|D|}, P(x_i \mid c) = \frac{|D_{c, x_i}|}{|D_c|}\)
\(D_c\)是训练集D中第c类样本组成的集合,\(D_{c,x_i}\)\(D_c\)中在第i个属性上取值为\(x_i\)的样本组成的集合


当某个属性值在训练中没有出现时,该项的概率值会是0,问题在于此时连乘式计算出的概率也会为0,于是在估计概率值时需要进行平滑,常用拉普拉斯修正,具体来说,将先验概率和条件概率修正为:\(\hat{P}(c) = \frac{|D_c| + 1}{|D| + N}, \hat{P}(x_i \mid c) = \frac{|D_{c, x_i}| + 1}{|D_c| + N_i}.\)

半朴素贝叶斯分类器

虽然朴素贝叶斯解决了条件概率计算困难的问题,但由于其较强的假设,现实任务中这往往无法成立,于是半朴素贝叶斯对属性条件独立性假设进行了一定程度的放松,也就是适当考虑一部分属性间的相互依赖信息
一种常用的策略是独依赖估计,独依赖是假设每个属性在类比之外最多仅依赖于一个其他属性

最直接的做法是假设所有属性都依赖于同一个属性,称为"超父",然后通过交叉验证等方式来确定超父属性
例如AODE尝试将每个属性作为超父来构建SPODE,然后将具有足够训练数据支撑的SPOD集成起来作为最终结果,和朴素贝叶斯类似,AODE的训练过程合适计数型的,即对符合条件的样本进行计数,因此AODE同样能通过预训练节省时间,也能通过懒惰学习在预测时再计数,可以实现增量学习

贝叶斯网络

通过DAG来刻画属性之间的依赖关系,用条件概率表来描述属性的联合概率
给定父节点集,贝叶斯网络假设每个属性于它的非后裔属性独立,于是\(B = \langle G, \Theta \rangle\)将属性\(x_1, x_2, \ldots, x_d\)的联合概率分布定义为\(P_B(x_1, x_2, \ldots, x_d) = \prod_{i=1}^{d} P_B(x_i \mid \pi_i) = \prod_{i=1}^{d} \theta_{x_i \mid \pi_i}\)
其中\(G\)是一个有向无环图,\(\Theta\)定量描述属性之间的依赖关系,即包含了每个属性的条件概率表

贝叶斯网络的结构

\(x_3\)\(x_4\)在给定\(x_1\)的取值时独立,记作\(x_3 \perp x_4 \mid x_1\)
边际独立性表示两个随机变量在不考虑其他任何变量的情况下是独立的,换言之,两个随机变量 X 和 Y 边际独立意味着它们的联合分布可以表示为各自边缘分布的乘积,例如V型结构下的\(x_1\)\(x_2\)\(x_4\)完全未知下是相互独立的,记作\(x_1 \perp x_2\)
边际独立性不考虑任何其他变量的影响,而条件独立性是在控制了某些变量的影响后考虑的独立性
image
为了分析有向图中变量间的条件独立性,可使用“有向分离”,把有向图转变为一个无向图:

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

由此产生的无向图称为“道德图”,令父结点相连的过程称为“道德化”,可理解为孩子的父母应建立牢靠的关系
在道德图上,若删去节点集合z,x和y分属两个连通分量,则x和y被z有向分离,\(x \perp y | z\)成立

贝叶斯网络的学习

贝叶斯网络的学习过程可以分为两个主要步骤:结构学习和参数学习。这两步分别对应于确定网络的拓扑结构和估计网络中的条件概率分布
为了描述贝叶斯网的结构,引入评分函数
常用评分函数基于信息论准则,将学习问题看作一个数据压缩任务,学习的目标是找到一个能以最短编码长度描述训练数据的模型,此时编码的长度包括了描述模型自身所需的字节长度和使用该模型描述数据所需的字节长
.对贝叶斯网学习而言,模型就是一个贝叶斯网,同时,每个贝叶斯网描述了一个在训练数据上的概率分布,自有一套编码机制能使那些经常出现的样本有更短的编码,于是,我们应选择那个综合编码长度(包括描述网络和编码数据)最短的贝叶斯网,这就是“最小描述长度” (MDL)准则.
例如训练集D上贝叶斯网B的评分函数为\(s(B \mid D) = f(\theta) |B| - LL(B \mid D)\),其中\(LL(B \mid D) = \sum_{i=1}^{m} \log P_B(\boldsymbol{x}_i)\)
第一项描述了编码贝叶斯网络需要的字节数,\(f(\theta)\)假设每个参数需要的字节数,|B|是贝叶斯网的参数个数,第二项是B的对数似然,描述概率分布需要用多少字节来描述训练集
当网络结构已知时,每个节点的条件概率表可以通过数据直接估计,原因如下:

  • 局部独立性:贝叶斯网络的局部独立性假设允许每个节点的条件概率分布独立地进行优化。
  • 数据驱动的估计:通过数据中的频率计数(MLE)或结合先验分布(贝叶斯估计),可以直接从数据中得到参数的经验估计。

于是,当第一项网络结构确定后,第二项的最优值也就可以得到了,因此整个评分函数相当于就是只要对网络结构进行考虑

贝叶斯网络的推断

最理想的方法是通过贝叶斯网定义的联合概率来精确计算后验分布,但这样的复杂度是很困难的,因此用吉布斯采样等方法来完成,具体见推断算法

posted @ 2025-04-09 10:57  rdcamelot  阅读(38)  评论(0)    收藏  举报