机器学习(西瓜书)7、贝叶斯分类器(下)

7.4 半朴素贝叶斯分类器

贝叶斯公式估计后验概率P(c I x) 困难,朴素贝叶斯分类器采用了属性条件独立性假设,现实任务中,人们尝试对属性条件独立性假设进行一定程度的放松,即产生“半朴素贝叶斯分类器”。基本思想是:适当考虑一部分属性问的相互依赖信息,从而既不需进行完全联合概率计算,又不至于彻底忽略了比较强的属性依赖关系"。

常用的策略是"独依赖估计",就是假设每个属性在类别之外最多仅依赖于一个其他属性,则后验概率为:

 如果父属性pai已知,可估计P(xi | c,pai),于是问题转化为 确定每个属性的父属性,不同的做法产生不同的做法产生不同的独依赖分类器。

SPODE (Super-Parent ODE)方法:假设所有属性都依赖于同一个属性,称为"超父",然后通过交叉验证等模型选择方法来确定超父属性。

TAN (Tree Augmented naÏve Bayes),是在最大带权生成树算法基础上,通过以下步骤将属性间依赖简化上图(c)树形结构,介绍一下最大带权生成树

先解释最小生成树,kruskal算法(克鲁斯卡尔算法)查找最小生成树的方法,举个例子对一下网络查找最小生成树,

(1)将连通网中所有的边按照权值大小做升序排序

(2)从权值最小的边开始选择,只要此边不和已选择的边一起构成环路,就可以选择它组成最小生成树。对于 N 个顶点的连通网,挑选出 N-1 条符合条件的边,这些边组成的生成树就是最小生成树。此例包含 6 个顶点的连通网,选择 5条边的最小生成树:

最大生成树算法和最小生成树算法几乎一样,只需要把最小生成树算法进行一点点改变,每一次选择的边是最大的边,然后再去判断这条边是否可以加入,那么这就是最大生成树的求取方法了。

回到TAN,简化步骤如下:

  • 计算任意两个属'性之间的条件互信息

  • 以属性为结点构建完全图,任意两个结点之间边的权重设为​​
  • 构建此完全图的最大带权生成树,挑选根变量,将边置为有向;
  • 加入类别结点 y, 增加从 u 到每个属性的有向边.

​刻画了属性 xi 和 xj 在己知类别情况下的相关性,通过最大生成树算法,实际上仅保留了强相关属性之间的依赖性

AODE (Averaged One-Dependent Estimator),与 SPODE 通过模型选择确定超父属性不同, AODE 尝试将每个属性作为超父来构建 SPODE,然后将那些具有足够训练数据支撑的 SPODE 集成起来作为最终结果。

与朴素贝叶斯分类器相似,.AODE 尤需模型选择,既能通过预计算节省预测时间,也能采取懒惰学习方式在预测时再进行计数,并且易于实现增量学习。

将属性条件独立性假设放松为独依赖假设可能获得泛化性能的提升。通过考虑属性间的高阶依赖,在有限样本条件下,会陷入估计高阶联合概率的泥沼。

7.5贝叶斯网

贝叶斯网(Bayesian network)亦称"信念网",它借助有向无环图(Directed Acyclic Graph,简称 DAG)来刻画属性之间的依赖关系,并使用条件概率表(Conditional Probability Table , 简称 CPT)来描述属性的联合概率分布。

 结构:贝叶斯网结构有效表达了属性间的条件独立性,给定父结点集,贝叶斯网假设每个属性与它的非后裔属性独立。

对于:

 有向分离(D-separation),作用是分析有向图中变量间的条件独立性。步骤:

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

道德图(端正图 moral graph),定义:有向分离产生的无向图,基于道德图能直观、迅速地找到变量间的条件独立性。

  • 假定:道德图中变量x,y,变量集合z={zi}
  • 条件:x,y能在图上被z分开(从道德图中将变量集合z去除,x和y分属两个连通分支)
  • 结论:x和y被z有向分离

道德化(moralization),令父节点相连的过程。值义:孩子的父母应该建立牢固的关系,否则是不道德的。

现实中不知晓网络结构,因此首要任务为根据训练数据找到结构最恰当的贝叶斯网,"评分搜索"是求解这一 问题的常用办法。

学习:

属性间的依赖关系己知,贝叶斯网的学习过程相对简单,只需通过对训练样本"计数",估计出每个结点的条件概率表即可。现实应用中不知晓网络结构,贝叶斯网学习的首要任务就是根据训练数据集来找出结构最"恰当"的贝叶斯网。

最常用的办法是“评分搜索”。先定义一个评分函数(score function),以此来评估贝叶斯网与训练数据的契合程度,然后基于这个评分函数来寻找结构最优的贝叶斯网。评分函数引入了关于我们希望获得什么样的贝叶斯网的归纳偏好。

常用的评分函数基于信息论准则,将学习问题看做一个数据压缩任务,目标是找到一个能以最短编码长度描述训练数据的模型。对贝叶斯网学习而言,模型就是一个贝叶斯网,每个贝叶斯网描述了一个在训练数据上的概率分布,自有一套编码机制能使那些经常出现的样本有更短的编码。我们应选择综合编码最短的贝叶斯网,即“最小描述长度准则”(简称 MDL)。

是贝叶斯网 B 的对数似然,式7.28的第一项是计算编码贝叶斯网 B 所需的字节数,第二项是计算 B 所对应的概率分布 PB 需多少字节来描述 D. 于是,学习任务就转化为一个优化任务,即寻找一个贝叶斯网 B 使评分函数 s(B I D) 最小。

从所有可能的网络结构空间搜索最优贝叶斯网结构是一个 NP 难问题,有两种常用的策略能在有限时间内求得近似解。

  • 贪心法:例如从某个网络结构出发,每次调整一条边(增加、删除或调整方向),直到评分函数值不再降低为止。
  • 通过给网络结构施加约束来削减搜索空间,例如将网络结构限定为树形结构等,可看作贝叶斯网的特例。

 推断:

贝叶斯网训练好之后,可以通过一些属性变量的观测值来推测其他属性变量的取值。通过已知变量观测值来推测待查询变量的过程称为"推断" (inference),己知变量观测值称为"证据" (evidence)。

当网络结点较多、连接稠密时,难以进行精确推断,直接根据贝叶斯网定义的联合概率分布来精确计算后验概率是一个NP难问题,需要借助"近似推断",通过降低精度要求,在有限时间内求得近似解。现实中贝叶斯网的近似推断常使用吉布斯采样来完成,是一种随机采样方法。

 需要注意马尔可夫链通常需很长时间才能趋于平稳分布,因此吉布斯采样算法的收敛速度较慢.此外,若贝叶斯网中存在极端概率 "0" 或 "1" ,则不能保证马尔可夫链存在平稳分布,此时吉布斯采样会给出错误的估计结果。

 7.6 EM算法

EM(Expectation-Maximization)算法是一种常用的估计参数隐变量的利器,也称为“期望最大算法”,是数据挖掘的十大经典算法之一。EM算法主要应用于训练集样本不完整即存在隐变量时的情形(例如某个属性值未知),通过其独特的“两步走”策略能较好地估计出隐变量的值。

EM算法思想

EM是一种迭代式的方法,它的基本思想就是:若样本服从的分布参数θ已知,则可以根据已观测到的训练样本推断出隐变量Z的期望值(E步),若Z的值已知则运用最大似然法估计出新的θ值(M步)。重复这个过程直到Z和θ值不再发生变化。

简单来讲:假设我们想估计A和B这两个参数,在开始状态下二者都是未知的,但如果知道了A的信息就可以得到B的信息,反过来知道了B也就得到了A。可以考虑首先赋予A某种初值,以此得到B的估计值,然后从B的当前值出发,重新估计A的取值,这个过程一直持续到收敛为止。

现在再来回想聚类的代表算法K-Means:【首先随机选择类中心=>将样本点划分到类簇中=>重新计算类中心=>不断迭代直至收敛】,不难发现这个过程和EM迭代的方法极其相似,事实上,若将样本的类别看做为“隐变量”(latent variable)Z,类中心看作样本的分布参数θ,K-Means就是通过EM算法来进行迭代的,与我们这里不同的是,K-Means的目标是最小化样本点到其对应类中心的距离和,上述为极大化似然函数。

EM算法数学推导

在极大似然法中,当样本属性值都已知时,我们很容易通过极大化对数似然,接着对每个参数求偏导计算出参数的值。但当存在隐变量时,就无法直接求解,此时我们通常最大化已观察数据的对数“边际似然”(marginal likelihood)。

这时候,通过边缘似然将隐变量Z引入进来,对于参数估计,现在与最大似然不同的只是似然函数式中多了一个未知的变量Z,也就是说我们的目标是找到适合的θ和Z让L(θ)最大,这样我们也可以分别对未知的θ和Z求偏导,再令其等于0。

然而观察上式可以发现,和的对数(ln(x1+x2+x3))求导十分复杂,那能否通过变换上式得到一种求导简单的新表达式呢?这时候 Jensen不等式就派上用场了,先回顾一下高等数学凸函数的内容:

Jensen's inequality:过一个凸函数上任意两点所作割线一定在这两点间的函数图象的上方。理解起来也十分简单,对于凸函数f(x)''>0,即曲线的变化率是越来越大单调递增的,所以函数越到后面增长越厉害,这样在一个区间下,函数的均值就会大一些了。

因为ln(*)函数为凹函数,故可以将上式“和的对数”变为“对数的和”,这样就很容易求导了。

接着求解Qi和θ:首先固定θ(初始值),通过求解Qi使得J(θ,Q)在θ处与L(θ)相等,即求出L(θ)的下界;然后再固定Qi,调整θ,最大化下界J(θ,Q)。不断重复两个步骤直到稳定。通过jensen不等式的性质,Qi的计算公式实际上就是后验概率:

通过数学公式的推导,简单来理解这一过程:固定θ计算Q的过程就是在建立L(θ)的下界,即通过jenson不等式得到的下界(E步);固定Q计算θ则是使得下界极大化(M步),从而不断推高边缘似然L(θ)。从而循序渐进地计算出L(θ)取得极大值时隐变量Z的估计值。

EM算法也可以看作一种“坐标下降法”,首先固定一个值,对另外一个值求极值,不断重复直到收敛。这时候也许大家就有疑问,问什么不直接这两个家伙求偏导用梯度下降呢?这时候就是坐标下降的优势,有些特殊的函数,例如曲线函数z=y^2+x^2+x^2y+xy+...,无法直接求导,这时如果先固定其中的一个变量,再对另一个变量求极值,则变得可行。

 EM算法流程

看完数学推导,算法的流程也就十分简单了,这里有两个版本,版本一来自西瓜书,周天使的介绍十分简洁;版本二来自于大牛的博客。结合着数学推导,自认为版本二更具有逻辑性,两者唯一的区别就在于版本二多出了红框的部分,这里我也没得到答案,欢迎骚扰讨论~

版本一:

版本二:

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Handsome_Zpp

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值