第7章 贝叶斯分类器理解记录

Posted wyy_persist

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了第7章 贝叶斯分类器理解记录相关的知识,希望对你有一定的参考价值。

7.1 贝叶斯决策理论

假设有N种可能的标记,lamda i j 表示将一个真实的cj类的样本误分类为ci所产生的损失。基于后验概率P(cj | x)可获得将样本x分类为ci所产生能的期望损失,即在样本x上的条件风险:

R(ci | x) = 求和N项 lamda i j  * P(cj | x);

寻找一个判定准则:

H : X -> Y,以最小化总体风险:

R(h) = Ex[R(h(x) | x)];

对于每一个样本x来说,如果h能最小化条件风险R(h(x) | x),那么总体风险也可以最小化。那么,就产生了贝叶斯判定准则。为最小化总体风险,只需要在每一个样本x上选择那个能使条件风险R(c | x)最小的类标记。即:

h*(x) = arg min R(c | x);

此时的h*(x)称为贝叶斯最优分类器。R(h*)称为贝叶斯风险。1-R(h*)反映了分类器所能达到的最好性能。(也是通过机器学习之后能产生的模型精度的理论上限)。

 对于当损失使用的是最小化分类错误率,那么误判损失lamda ij 可写为:如果i = j,那么lamda  = 0;如果:i 不等于 j,那么lamda  = 1;

同时条件风险,R(c | x) = 1 - P(c | x);

于是,最小化分类错误率的贝叶斯最优分类器为:

H*(x) = arg max P(c|x);

通过上述的分析之后,得知需要将机器学习算法运用到后验概率的获得中,只要获得了后验概率,那么样本集对应的条件风险或贝叶斯最优分类器等就可以获得了。

得到后验概率的方法:需要使用有限的样本集估计出相对准确的后验概率。

方法一,直接建模的方法,得到的是判别式模型;

方法二,先对联合概率分布建模,然后获得后验概率,得到的是生成式模型。

其中的生成式模型来说,需要考虑的是P(c | x) = P(x,c) / P(x);

基于贝叶斯定理来说,P(c | x) = P(c) * P(x | c) / P(x);

其中的P(c)是样本空间中各类样本占的比例。

P(x | c)是类条件概率,涉及x所有属性的联合概率,所以需要使用极大似然估计来进行对类条件概率的估计。

7.2 极大似然估计(MLE)

主要目的:为了解决类条件概率的估计。

常用的方法是:先假设对样本集来说已经有了确定的模型表达式,其中的参数theta向量就是需要使用训练集进行学习之后才可以得到。实际上概率模型的训练过程就是参数估计的过程。

极大似然估计是根据采样来估计概率分布参数的经典方法。

这里假设Dc表示的是样本集合D中c类样本的集合,假设样本的集合是独立同分布的,那么参数theta c对数据集Dc来说的似然是:

P(Dc | theta c) = Π P(x | Dc);

对于theat c进行极大似然估计,就是去寻找最大化似然P(Dc | theta c)的参数值theta c;目的是找到一个能使数据出现的可能性的最大值。

由于使用上述的连乘操作容易造成下溢,那么使用对数似然来进行。

但是由于估计出来的模型需要和数据的真实的分布保持较强的一致性,这个时候需要使用经验来进行模型的预测。

7.3 朴素贝叶斯分类器

基于属性独立性假设进行设置一个分类器。

那么上述的基于贝叶斯定理类分类器,有可以变成:

P(c | x) = P(c)/P(x) * Π P(xi | c);

其中,i的取值范围是从1 -> d;

朴素贝叶斯的表达式为:

Hnb(x) = arg max p(C) * p(xi | c);

这里的P(c)来说,使用的是Dc / D(使用了大数定律)。

其中的条件概率P(xi | c)为:

对于离散属性来说,P(xi | c) = Dc,xi / Dc;其中分子是集合Dc中在i上的属性为xi的样本集;分母是:样本集合Dc。

对连续型属性来说,可以使用概率密度函数。(例如使用高斯分布(即正则分布)。

对于某个属性在样本集中对应类别中从来未出现过的情况,由于会导致条件概率是0,那么将导致得到的朴素贝叶斯分类概率为0,那么为了解决上述的问题,需要使用平滑,这里常用拉普拉斯修正来进行。

即:N表示训练集D中可能的类别数,N表示第i个属性可能的取值数,则先验概率分布式可以修正为:P(c) = Dc + 1 / D + N;

其中的P(xi | c) = Dc,xi + 1 / D + N;

此外当数据更新的时候可以使用懒惰学习的方法,先不进行任何训练,而是接收到预测请求的时候再根据当前数据集进行概率的估计。如果数据不断增加,那么可以在现有的基础上,仅对新增样本的属性所设计的概率估计进行计数修正即可,实现增量学习。

7.4 半朴素贝叶斯分类器

由于朴素贝叶斯的属性独立性假设在现实运用中很难成立,所以有半朴素贝叶斯分类器的产生。

最常用的一种策略是:独依赖估计。ODE,独依赖就是对于样本集中的每一个属性来说,任意一个属性依赖的只有另外一个属性。

由公式:P(c | x) & P(c) Π P(xi | c,pai);

其中的pai为属性xi所依赖的属性,称为:xi的父属性。

最关键的一点是:如何确定每个属性的父属性。

最直接的做法是:假设左右的属性都依赖于同一个父属性,这个父属性称为超父。然后通过交叉验证方法等模型来确定超父属性。SPODE就是一种典型的方法。

TAN算法则是在最大带权生成树算法的基础上,通过以下步骤实现了属性间依赖关系:

  1. 计算两个属性之间的条件互信息。
  2. 以属性为结点构建完全图,任意两个结点之间边的权重设置为上述的结点之间的互信息。
  3. 构建此完全图的最大带权生成树,挑选根变量,将边置为有向.
  4. 加入类别结点y,增加从y到每个属性的有向边.

上述的条件互信息刻画了两个属性在已知类情况下的相关性.

AODE算法:是一种集成学习的机制.AODE选择每个属性来作为超父来构建SPODE,然后将具有足够训练数据支撑的SPODE集成起来作为最终的结果.

AODE的训练过程也是计数的过程.AODE不需要模型的选择,也可以采用懒惰学习的方法在预测时再进行计数.且容易实现增量学习.

7.5 贝叶斯网

也是信念网.借助于有向无环图DAG来刻画属性之间的依赖联系.并使用条件概率表CPT来描述属性的联合概率分布.

一个贝叶斯网络B由结构G和参数theta两部分组成,其中的G是一个有向无环图,每一个结点表示一个属性.如果两个属性有直接依赖关系,那么使用一条线将两个属性连接起来.其中的参数theta定量描述这种依赖关系.

Theta则包含了每个属性的条件概率表.

结构:有三种典型的结构:同父结构,V型结构,顺序结构.

对V型结构来说,如果其中的共同决定的属性完全未知,那么两个属性之间是独立的.这个称为:边际独立性.

使用有向分离的方法可以分析有向图中变量间的条件独立性.

先将一个有向图转换为无向图:

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

2.将所有的有向边转换为无向边.

这样产生的图称为道德图.

使得父结点相连的过程为:道德化.

上述得到的道德图中,如果两个变量x y可以被z集合中的向量zi分离开来,那么称x 和 y被z有向分离.

学习:

首要任务是根据训练集找到最恰当的贝叶斯网.

评分搜索是常用的一种寻找最合适贝叶斯网的方法.

步骤:

  1. 首先定义一个评分函数,用来估计贝叶斯网和训练数据的契合程度.
  2. 基于上述的评分函数,来寻找最优结构的贝叶斯网络.

此类问题是标准的数据压缩任务.学习目标是:找到一个以最短编码长度描述训练数据的模型.此时的编码长度描述了模型自身的编码位数和使用该模型描述数据所需要的编码位数.最后选择编码长度最小的那个最短贝叶斯网,这种策略是:最小描述长度准则.MDL

贝叶斯网的评分函数可以写为:s(B | D) = f(theta) * |B| - LL(B | D);

其中的|B|是贝叶斯网络中的参数的个数;f(theta)描述的是每个参数theta所需要的编码位数;同时LL(B | D) 是贝叶斯网B的对数似然.

如果上述评分函数中的f(theta)是1,那么得到AIC评分函数.

如果f(theta)是1/2 log(m),那么得到的是BIC评分函数.

当f(theta) = 0的时候,上述的模型退化为了负对数似然,学习的任务退化为了极大似然估计.

对从所有的可能的网络中搜索最优的贝叶斯网络结构是一个NP难问题,难以快速求解,有两种常用的策略:

  1. 贪心法.
  2. 通过网络结构施加约束来削减搜索空间,例如:将网络结构限定为树形结构等.

推断:

贝叶斯网络的近似推断常采用吉布斯采样的方法.这是一种随机采样的方法.

首先:吉布斯采样先随机产生一个与证据E  = e一样的样本q0作为初始点.

然后,每步从当前样本出发产生下一个样本.

上述的采样过程中,包含了qt和qt-1样本集的判断,然后对非证据变量E = e来说,逐个进行采样改变其取值.采样概率根据贝叶斯网络B和其他变量的当前取值获得.

假设经过T次采样之后得到的与q一致的样本有nq个,则可近似估算出后验概率.(使用的是大数定律).

吉布斯采样实际上是在贝叶斯网所有变量的联合状态空间与证据E = e一致的子空间中进行的随机漫步.每一步仅依赖于前一步的状态,这称为:马尔可夫过程.

7.6 EM算法

对有缺失的数据集使用的一种方法.

当数据集存在没有观测的属性的情况下,仍然可以得到相关的模型.

这种没有观测到的属性变量是隐变量.令X表示已观测到的变量集,Z表示未观测到的变量集.theta表示模型参数.如果想要对theta进行极大似然估计,那么最大化对数似然估计.但是由于上述的Z变量集是未知的.那么需要对于Z计算期望,来最大化已观测到的对数边际似然.

EM算法是常用的估计参数隐变量的方法.

基本操作:

  1. 若参数theta已知,则可以根据训练数据推断出最优隐变量Z的值.(E步)
  2. 若Z的值已知,可以对参数theta做极大似然估计.(M步)

上述的过程中,基于theta来推断隐变量分布 P(Z | X,theta t)并计算对数似然函数的期望;而后,在M步,得到参数theta最大化期望似然.

重复上述过程直到收敛到局部最优解.

实际上隐变量的估计问题也可以使用梯度下降的方法进行.但是随着,求和的项数以指数级上升,会给梯度计算带来麻烦.

EM算法则是一种非梯度优化的算法.

以上是关于第7章 贝叶斯分类器理解记录的主要内容,如果未能解决你的问题,请参考以下文章

贝叶斯分类器

贝叶斯分类器(3)朴素贝叶斯分类器

贝叶斯分类器(1)贝叶斯决策论概述、贝叶斯和频率、概率和似然

机器学习九大算法---朴素贝叶斯分类器

《机器学习》-- 第七章 朴素贝叶斯

使用朴素贝叶斯分类器进行意见挖掘