不可小视的贝叶斯(三)

前面我们已经知道朴素贝叶斯分类器基于一个很强的假定,即对于给定的某个类别,各特征属性之间是相互独立的。这个假定简化了计算过程和减少了分类器的复杂度,但是其限制条件却太过苛刻。因为直观上我们知道,现实世界中各特征属性之间很有可能是相互关联的,我们不能忽略这个特征。为了对现实世界进行更好的建模以得到更加准确的分类。接下来我要讲述第四部分的内容,即贝叶斯网络。
    4)贝叶斯网络
   (1)贝叶斯网络定义
    贝叶斯网络(Bayesian Networks, BNs)也称作贝叶斯网(Bayesian Nets)或者信念网络(Belief Networks)。它是表示变量之间相互作用的图形模型。贝叶斯网络由节点和节点之间的弧组成,每个节点对应一个随机变量X,并且具有一个对应该随机变量的概率P(X)。如果存在一条从节点X到节点Y的有向弧,则表明X对Y有直接影响,该影响被条件概率P(Y/X)所指定。另外,贝叶斯网络是一个有向无环图,即图中没有环。节点和节点之间的弧定义了网络的结构,而条件概率是给定结构的参数。
    上述概念也许从文字上不好理解,我们通过图形来理解。下图中图(a)表示朴素贝叶斯网络,图(b)表示一般情形的贝叶斯网络。
    不可小视的贝叶斯(三)
    对于图(a)中朴素贝叶斯网络而言,假定特征属性B、C、D之间是相互独立的,所以他们之间没有边相连。也就是说,在给定A的情况下特征属性B的发生与给定A的情况下特征属性C的发生是相互独立的。由于各个属性都有一条从A指向其的边,所以所有的属性都依赖于类别变量A。而对于图(b)中贝叶斯网络而言,B到C和C到D之间是有边相连的,这也意味着他们之间是有关联的。这在很大程度上减轻了条件独立性的假设。也就是说给定A的情况下特征属性C的发生还与给定A情况下B的发生是有联系。
    上面我们提到,节点之间如果有边表示他们之间是有联系的,而因为该边是有向的,如果有一条A到B的有向弧,其含义我们暂时可以理解为A“causes”B,后面我们还会详细介绍它。这个信息可以指引我们建立一个图的结构。
    对于贝叶斯网络而言,我们必须定义每个节点的条件概率分布(Conditional Probability Distribution, CPD)。如果该变量是离散的,那么他们可以用条件概率表(CPT)来表示。 条件概率表列出了每个节点对于父节点不同组合取值时,它取不同值的概率。下面我们来看一个具体的例子,假定每个节点都只有两种取值,即T(true)或者F(false)。
    不可小视的贝叶斯(三)
    从上图中,我们可以看到,事件“草地湿了”(W = true)发生有两种原因:要么是洒水器开了(S = true),要么是下雨了(R = true)。各个节点之间的关系列在了表中。例如,在上图最下方的一个CPT中,P(W=true | S=true, R=false) = 0.9 (第二行), 从而P(W=false | S=true, R=false) = 1 - 0.9 = 0.1(因为每一行的值加起来必须等于1)。另外由于C节点没有父节点,其CPT定义了该节点的先验概率。
    上述图中,所有节点的联合概率的表达式如下:
    P(C, S, R, W) = P(C) * P(S|C) * P(R|C,S) * P(W|C,S,R)
    通过利用节点间的条件独立性关系,对于上式倒数第二项,R的发生仅与C有关而与S的发生无关;同样的,最后一项W的发生仅与S和R的发生有关,而与C无关。所以上式可以改写为:
    P(C, S, R, W) = P(C) * P(S|C) * P(R|C) * P(W|S,R)
    值得一提的是,尽管上面这个例子中,由于条件独立性为我们带来的计算量的减少不大,但是在大多数场合下,它的功效是非常大的。
    至此,也许你会问,既然是贝叶斯网络,为什么到现在我还没有看到任何关于贝叶斯的影子呢?事实上,你说的没错,上述条件概率分布(CPD)通常我们是通过频率计算方法得到的。而称作其为贝叶斯网络,实际上,我们应用的是其概率的推理,让我们继续往下看。

    (2)推理(Inference)
    使用贝叶斯网络通常我们希望通过它得到概率推理。例如对于上述网络,假如我们已经观察到“草地湿了”,我们知道有两种可能,但是,哪一种更有可能是的呢?利用贝叶斯定理我们可以得到如下计算(1表示true,0表示false)。   不可小视的贝叶斯(三)
    上式中Pr(W = 1)的计算如下:
    不可小视的贝叶斯(三)
    所以根据上面的计算,我们可以推断,事件“草地湿了”的发生更可能是因为下雨了。
    上面我们给出了计算,我们也称为诊断或者“bottom up”reasoning,因为直观上他是从底部到上面,根据结果来推断原因。除了这个以外,我们还可以计算,如果天气是cloudy,那么“草地湿了”的概率?这也称为“top down”reasoning。

   (3)因果性(Causality)
    前面我们提到过,贝叶斯网络中,从A指向B的有向弧,我们可以理解为A导致B的发生。一个有趣的问题是:我们能区分出变量之间的因果性和纯粹的关联性吗?答案是,有时候,并且你需要测量至少三个变量之间的关系才行。所以在利用贝叶斯网络来做推理之前,我们还必须学习其结构,也就是将节点之间的关系通过图来建模。这就是第四部分我们要将的内容。
    到这里,我们可以知道,贝叶斯网络描述了一种概率分布,它通过指定一些条件独立的假定和一组条件概率来管理一组变量(A Bayesian network describes the probability distribution governing a set of variables by specifying a set of conditional independence assumptions along with a set of conditional probabilities)。另外,对于条件独立性的假定仅仅应用在其子集变量中

   (4)学习贝叶斯网络结构
    有些时候,我们根本不知道网络的结构或者说只是知道结构的一部分,这个时候我们就需要学习贝叶斯网络的结构。
    有两种方法学习贝叶斯网络的结构:参数学习和结构学习
    参数学习适用于网络结构是已知的。它又有2种情况:第一种情况是网络结构是已知的,并且网络结构中没有隐藏或者丢失变量;另一种是网络结构也是已知的,但是有隐藏或者丢失的变量。在第一种情况下,主要的任务是估计条件概率;而在第二种情况下,需要一个本地优化解决方案,例如期望最大化算法(Expectation Maximization, EM)。
    当数据集D潜在的结构未知的时候,此时应该运用结构学习。结构学习的任务可以表述如下:给定一个训练集D,找到一个与D最相匹配的网络B,此时D是一个独立的实例。结构学习也有两种不同的从数据集中找到接近图概率模型学习的方法。即基于依附分析的方法(dependency-analysis-based methods)和搜索计分方法(search and score methods)
    基于依附分析的方法依赖于这样一个假定,即所研究的潜在的网络中节点之间有很多依赖关系。算法通过对训
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值