文章目录
贝叶斯网络(概率图模型)定义主要考点例题- 要求画出贝叶斯网络图- 计算各节点的条件概率表- 计算概率- 分析独立性
贝叶斯网络(概率图模型)
定义
一种简单的用于表示变量之间条件独立性的有向无环图
(DAG)。
主要考点
给出一定表述,要求画出贝叶斯网络图;给出每个节点的条件概率表;使用贝叶斯网络计算概率;分析贝叶斯网络的独立性;例题
- 要求画出贝叶斯网络图
(20年期末)臭鸡蛋(E)或灾难后动物的尸体(M)都会发出一种奇怪的臭味(S),灾难也可能导致海水沸腾(B)。
STEP1
先找出原因变量
E、M能导致S,所以E和M是原因变量,M也能导致B;因此由题目可以总结出E和M为原因变量,考虑首先把它们加入图中;
STEP2
依次把变量加入图中
首先加入E,然后加入M,E、M之间没有交互关系,无连接;
再加入S,E和M都能导致S,因此E和M都是S的父节点;
最后加入B,只有M能导致B,因此M作为B的父节点;
最后得出的贝叶斯网络图如下:
- 计算各节点的条件概率表
给定一定的数据集以及对应的贝叶斯网络,求各节点对应的条件概率表。
STEP1
首先处理无父节点的结点
P(里程=高) |
---|
20/41 |
P(空调=可用) |
---|
25/41 |
STEP2
再处理有父节点的结点
里程 | P(空调=可用) |
---|---|
高 | 0.5 |
低 | 15/21 |
引擎 | 空调 | P(车价=高) |
---|---|---|
好 | 可用 | 0.75 |
好 | 不可用 | 2/3 |
差 | 可用 | 2/9 |
差 | 不可用 | 0 |
- 计算概率
在上一题的基础上计算P(引擎=差,空调=不可用)
未给定车的价值,引擎和空调是独立的,因此P(引擎=差,空调=不可用)=P(引擎=差)P(空调=不可用)
引擎与行车里程有关
P(引擎=差)= P(引擎=差 | 行车里程=高)P(行车里程=高)+P(引擎=差 | 行车里程=低)P(行车里程=低) = 0.5×(20/41) + (6/21) ×(21/41)
P(引擎=差,空调=不可用) = P(引擎=差)P(空调=不可用) = 0.5×(20/41) + (6/21) ×(21/41) × (16/41)=0.1522
(20年期末)臭鸡蛋(E)或灾难后动物的尸体(M)都会发出一种奇怪的臭味(S),灾难也可能导致海水沸腾(B)。
假定该表述的各条件概率表由下表所示,请计算出以下概率
1、联合概率 P(-e,-s,-m,-b)
P(-e,-s,-m,-b) = P(-e)P(-m)P(-s|-e,-m)P(-b|-m) = 0.6×0.9×0.9×0.9 = 0.44
2、海水沸腾的概率 P(+b)
P(+b) = P(+b|+m)P(-m) + P(+b|-m)P(-m) = 1×0.1+0.1×0.9 = 0.19
3、在海水沸腾的条件下,动物尸体出现的概率 P(+m|+b)
P(+m|+b) = P(+b|+m)P(+m) / P(+b) = (1×0.1) / 0.19 = 0.53
4、在奇怪的臭味,海水沸腾与臭鸡蛋出现的条件下,动物尸体出现的概率 P(+m|+s,+b,+e)
可以根据贝叶斯网络写出联合概率分子部分:
P(+e,+s,+m,+b) = P(+e)P(+m)P(+s|+e,+m)P(+b|+m) = 0.4×0.1×1.0×1.0 = 0.04
分母部分
P(+s,+b,+e) = P(+e)P(+m)P(+s|+e,+m)P(+b|+m)
+ P(+e)P(-m)P(+s|+e,-m)P(+b|-m)
= 0.4×0.1×1.0×1.0 + 0.4×0.9×0.8×0.1 = 0.0688
所以P(+m|+s,+b,+e) = 0.04/0.0688 = 0.58
- 分析独立性
(20年期末)考虑下图所示的贝叶斯网络,判断以下表述是否正确
判断独立性可以用道德图,有以下五个步骤
根据原始概率图,构建包括表达式中包含的变量以及这些变量的祖先节点的图;(这一步通常可以省略,看题目给出的图即可)若两个节点有同一个子节点,连接这两个节点;(若一个变量的节点有多个父节点,则分别链接每一对父节点)去掉图中所有的路径方向,将有向图变成无向图;从图中删除需要判断的概率表达式中作为条件的变量,以及和它们相连的路径;最后一步判断:若变量之间没有连接则独立,若有路径连接则不独立
,若其中一个变量在上一步中被删掉了则独立。 具体怎么用这种方法写这道题我就不详细写了(因为有点麻烦,还比较容易出错),可以参考这篇文章https://zhuanlan.zhihu.com/p/436214290
另一种比较简单的方法是D-分离法,是参考https://wmathor.com/index.php/archives/1521/这篇文章总结出来的
记住这三个图:
当c给定时,a和b独立,可以理解为a到b的路径没有被阻断V型结构
与上面两种情况相反,当c没有给定时,a和b独立
所以如果我们要判断两个节点AB是否独立,就需要判断是不是所有从A到B的路径都被阻断,如果是则AB独立,反之,存在一条路径未被阻断,则AB不独立。
考虑所有从A到B的路径,如果路径上的节点存在以下两种情况,路径被阻断,AB独立:
该节点给定,且是顺序结构或同父结构
该节点未给定,是V型结构
注:在寻找A到B的路径时视为无向图,判断结点属于什么结构时视为有向图
下面根据该题详细解释一下步骤
1、A ⊥ ⊥ \perp \!\!\! \perp ⊥⊥B
A与B直接相连,显然A和B是不独立的(存在A到B的一条通路)
2、A ⊥ ⊥ \perp \!\!\! \perp ⊥⊥D | {B , H}
判断AD是否独立,我们需要找出所有从A到D的路径
可以看出这条路径上B节点是属于顺序结构的,而B已经给定,符合第一点,说明该路径被阻断;A-F-G-D
该路径中F结点属于顺序结构,未给定,所以没有阻断;
G结点属于V型结构,未给定,符合第二点,所以该路径也被阻断;A-F-G-H-E-B-D
这条路径中F和G都属于未给定的顺序结构,不存在阻断;
H属于给定的V型结构,也不存在阻断;
E属于未给定的同父结构,不阻断;
B属于给定的顺序结构,符合第一点,这条路径也被阻断
所以所有A到D的路径都被阻断了,因此A和D是独立的
3、G ⊥ ⊥ \perp \!\!\! \perp ⊥⊥E | B
同理,寻找G到E的路径
H属于未给定的V型结构,符合第二点,该路径被阻断;G-D-B-E
D属于未给定的顺序结构,不阻断;B属于给定的顺序结构,符合第一点,该路径被阻断;G-F-A-B-E
F属于未给定的顺序,不阻断;A属于未给定的同父,不阻断;B属于给定的V,不阻断;
所以该路径可以连通G和E
故G和E是不独立的
4、F ⊥ ⊥ \perp \!\!\! \perp ⊥⊥C | D
寻找F到C的路径
F-A-B-CA属于未给定的同父,不阻断;B属于未给定的V型结构,符合第二点,该路径被阻断;F-G-D-B-C
G属于未给定的V型,符合第二点,该路径被阻断;F-G-H-E-B-C
G属于未给定的顺序,不阻断;H属于未给定的V型,符合第二点,被阻断;
所以F和C是独立的
5、C ⊥ ⊥ \perp \!\!\! \perp ⊥⊥H | G
寻找C到H的路径
B属于未给定的V型,被阻断;C-B-D-G-H
B和D都属于未给定的顺序,不阻断;G属于给定的顺序,被阻断;C-B-A-F-G-H
B属于未给定的V型,被阻断;
因此C和H是独立的
(22年春期末)判断下列变量之间的独立性(B,E l C),(A,D),(A,D I B),(A,D I B,C)
(B,E l C)BE之间存在C是给定的顺序,所以被阻断(两条路径都是),所以 (B,E | C)独立;(A,D)
AD之间存在B是未给定的顺序结构,存在A-B-D这条通路,所以 (A,D)不独立,即使A-B-C-D被B阻断;(A,D I B)
给定了B,则A-B-D这条路被阻断,但A-B-C-D这条路是通的,所以 (A,D I B)不独立;(A,D I B,C)
给定了BC,很显然两条路都被阻断了,所以 (A,D I B)独立;
大概就是这么个判断方式,只要找到满足那两个条件的结点,这条路径就被阻断,如果所有路径都被阻断,那么两个结点就是独立的。
参考文章:
https://zhuanlan.zhihu.com/p/436214290
https://zhuanlan.zhihu.com/p/274314301