前面学习了朴素贝叶斯的原理,并且利用朴素贝叶斯原理对西瓜数据集3.0数据集进行了分类:朴素贝叶斯(Naive Bayes)原理+编程实现拉普拉斯修正的朴素贝叶斯分类器,今天我们更进一步,来探讨一下贝叶斯网络的原理以及应用。
贝叶斯网络
1.定义
贝叶斯网络(Bayesian network),又称信念网络(belief network)或是有向无环图模型(directed acyclic graphical model),是一种概率图型模型。一个贝叶斯网络是一个有向无环图(Directed Acyclic Graph,DAG),由代表变量结点及连接这些结点有向边构成。
上面只是一些繁琐的定义,接下来的说明比较关键:结点代表随机变量,结点间的有向边代表了结点间的互相关系(由父结点指向其子结点),用条件概率进行表达关系强度,没有父结点的用先验概率进行信息表达。 结点变量可以是任何问题的抽象,如:测试值,观测现象,意见征询等。适用于表达和分析不确定性和概率性的事件,应用于有条件地依赖多种控制因素的决策,可以从不完全、不精确或不确定的知识或信息中做出推理。
提取到几个有用信息:
- 结点代表随机变量
- 结点间的有向边代表了结点间的相互关系,由父结点指向子结点
- 用条件概率表达变量间依赖关系
令G为定义在一组随机变量{X1,X2,X3,…,XN}上的贝叶斯网络,那么则有:
其中 P a r G ( X i ) Par_{G}(X_{i}) ParG(Xi)为结点 X i X_{i} Xi的父结点, p i ( X i ∣ P a r G ( X i ) ) p_{i}(X_{i}\mid Par_{G}(X_{i})) pi(Xi∣ParG(Xi))表示结点条件概率,举个例子:
一个简单的贝叶斯网络,三个随机变量a,b,c,a没有父结点,那就是p(a),b的父结点只有一个a,因此第二项是 p ( b ∣ a ) p(b\mid a) p(b∣a),同理c的父结点有a,b,那么第三项就是 p ( c ∣ a , b ) p(c\mid a,b) p(c∣a,b),三项相乘即得到三个随机变量的联合概率分布。
再举一个例子:
可以看到x1,x2,x3都没有父结点,因此都是先验概率,而x4有三个父结点,以此类推。
接下来我们需要解释为什么上述公式能够成立。我们知道,乘法公式是普遍成立的,即:
我们重新画一个图:
按照我们思路写出来的联合概率分布与乘法公式只是第二项不同,但是重点是B与C是没有关系的,因此是条件独立的,即:
因此通过贝叶斯网络求出来的联合概率分布一定是正确的。
2.概率流动的影响性
概率流动的影响性(Flow of Probabilistic Influence)指的是在一定的观测条件下,变量间的取值改变是否会有相互影响,这里给出两个概念:
- 观测变量:变量取值可观测,或变量取值已经确定
- 隐变量:变量取值未知,通常根据观测变量的取值,对隐变量的取值概率进行推理。
2.1独立的概念
- 变量独立性
随机变量X,Y若满足如下关系中的任意一个:
- P ( X , Y ) = P ( X ) P ( Y ) P(X,Y)=P(X)P(Y) P(X,Y)=P(X)P(Y)
- P ( X ∣ Y ) = P ( X ) P(X|Y)=P(X) P(X∣Y)=P(X)
- P ( Y ∣ X ) = P ( Y ) P(Y|X)=P(Y) P(Y∣X)=P(Y)
那么我们就称随机变量X和Y相互独立
- 条件独立性
随机变量X,Y在Z给定条件下满足:
- P ( X , Y ∣ Z ) = P ( X ∣ Z ) P ( Y ∣ Z ) P(X,Y|Z)=P(X|Z)P(Y|Z) P(X,Y∣Z)=P(X∣Z)P(Y∣Z)
- P ( X ∣ Y , Z ) = P ( X ∣ Z ) P(X|Y,Z)=P(X|Z) P(X∣Y,Z)=P(X∣Z)
- P ( Y ∣ X , Z ) = P ( Y ∣ Z ) P(Y|X,Z)=P(Y|Z) P(Y∣X,Z)=P(Y∣Z)
那么我们同样可以认为随机变量X和Y满足独立关系。
2.2通过网络判定条件独立
-
tail-to-tail
中间一个随机变量指向了另外两个变量,而另外两个变量之间不存在相互作用关系,现在我们来探讨这个网络概率影响的流动性。
首先根据上面所讲的知识,我们很容易得到该贝叶斯网络中变量的联合概率分布为:
从而:
因为我们要判断随机变量a,b是否独立,因此我们可以构建如下表达式:
根据乘法公式,上式一定成立,而根据上上一个式子我们可以知道:
p ( a , b , c ) / p ( c ) = p ( a ∣ c ) p ( b ∣ c ) p(a,b,c)/p(c)=p(a|c)p(b|c) p(a,b,c)/p(c)=p(a∣c)p(b∣c),因此最终我们可以得到:
根据上面条件独立性的定义,我们可以得到:在tail-to-tail中,当中间随机变量给定时,另外两个随机变量相互独立。 -
head-to-tail
在head-to-tail中,三个随机变量a,c,b依次顺序相连,我们要证明a,b之间的独立性,与上面证明方式一样,这里我们就不再证明了,直接给出结论:在head-to-tail中,当中间随机变量给定时,另外两个随机变量相互独立。 -
head-to-head
在head-to-head中,两个随机变量共同指向中间的变量,同样我们直接给出结论:在head-to-head中,当中间随机变量没有给定时,另外两个随机变量相互独立。
3.有效迹
3.1定义
对于贝叶斯网络中的一条迹(路径) X 1 ⇌ . . . X n X_{1}\rightleftharpoons ...X_{n} X1⇌...Xn和观测变量Z,当 X 1 和 X n X_{1}和X_{n} X1和Xn的取值能够相互影响时,称路径是有效的。
3.2条件独立与有效迹
当 X 1 ⇌ . . . X n X_{1}\rightleftharpoons ...X_{n} X1⇌...Xn不是有效迹时,那么显然 X 1 和 X n X_{1}和X_{n} X1和Xn相互独立。
3.3 D-separation
D-分离:若图G在给定观测子集Z条件下(即部分随机变量已知),结点X和结点Y之间不存在任何有效迹,则称X和Y在给定Z时是D-分离的,记为: D − s e p G ( X , Y ∣ Z ) D-sep_{G}(X,Y\mid Z) D−sepG(X,Y∣Z)
3.4判断独立性
- 引理:一个结点的父结点已知时,则该结点与其所有的非后代结点(non-descendants)满足D-separated
- 定理:由引理很容易得出,当一个结点父结点已知时,该结点与所有非后代结点条件独立
还是举个例子:
如上图所示,当x6的父结点x4给定时,x6就与它的所有非后代结点条件独立,包括x1,x2,x3,x5,x7,这里不再证明。
4.贝叶斯网络的构建
算法过程:
- 选择随机变量的一个比较合理的顺序 X 1 , X 2 . . . X n X_{1},X_{2}...X_{n} X1,X2...Xn
- for i in range(1,n+1),在网络中添加 X i X_{i} Xi结点,接着在 X 1 . . . X i − 1 X_{1}...X_{i-1} X1...Xi−1中选择 X i X_{i} Xi的父结点,使得:
5.贝叶斯网络的特性
- 贝叶斯网络本身是一种不定性因果关联模型,它将多元知识图解可视化,贴切蕴含了网络结点变量之间的因果关系以及条件相关关系。
- 贝叶斯网络具有强大的不确定性问题的处理能力,它用条件概率表达各个信息要素之间的相关关系,能在有限的、不完整的、不确定的信息条件下进行知识学习和推理。
- 贝叶斯网络能有效地进行多源信息的表达与融合,可将故障诊断与维修决策相关的各种信息纳入到网络结构中,并按结点的方式统一进行处理。
6.贝叶斯网络的缺陷
- 研究如何根据数据和相关知识高效、准确地建立贝叶斯网络,一直是近十年来的热点与难点。
- 目前对于这一类学习问题,主要有基于打分-搜索的学习方法和基于依赖分析的学习方法,但前者存在搜索空间巨大,可能收敛于局部最优解等问题;后者则存在结点之间的独立性或条件独立性的判断困难以及高阶条件独立性检验结果不够可靠等问题。
来源:oschina
链接:https://my.oschina.net/u/4367103/blog/4444148