贝叶斯网络(笔记)

贝叶斯定理

几个概念:
1. 条件概率 P(A|B)=P(AB)P(B) ,指在事件B发生的条件下A发生的概率。
2. 联合概率:即A B同时发生的概率,即 P(A,B)=P(AB)=P(A|B)P(B)=P(B|A)P(A)
3. 边缘概率(又称先验概率),边缘概率是这样得到的:在联合概率中,把最终结果中那些不需要的事件通过合并成它们的全概率,而消去它们(对离散随机变量用求和得全概率,对连续随机变量用积分得全概率),这称为边缘化。

贝叶斯公式:

P(A|B)=P(AB)P(B)

贝叶斯网络

概念:一种概率图模型。它是一种模拟人类推理过程中因果关系的不确定性处理模型,其网络拓朴结构是一个有向无环图(DAG)。 图中连接两个节点的箭头代表此两个随机变量是具有因果关系,或非条件独立。

把某个研究系统中涉及的随机变量,根据是否条件独立绘制在一个有向图中,就形成了贝叶斯网络

DAG中节点x的联合概率 P(x)=iIP(xi|parent(xi))

思考

既然已经知道了什么叫贝叶斯网络,那么如果需要回答基于贝叶斯网络上的概率问题,又该如何去解决呢?或者说是否有一套方法去解决DAG上的概率问题?

说的更加容易懂的话,就是如果这些随机变量不相互独立,且相互之间有因果关系,在给定训练集的情况下,如何通过随机变量的值去猜测类别?

众所周知,如果给定的随机变量都相互独立,要通过随机变量的值推测类别,直接使用朴素的贝叶斯算法就行了?

下面先了解几个概念:
D分离:判断DAG图中两个变量是否相互独立的方法。有三种形态的链,各自对应不同的结论。

Jupyter是一个基于Web的交互式笔记本工具,可以用于执行和展示代码、文本、图像等。构建贝叶斯网络是在Jupyter环境中进行的一项任务,具体步骤如下: 1. 安装依赖软件包:在Jupyter笔记本中构建贝叶斯网络之前,需要确保安装了相应的依赖软件包,如NumPy、SciPy和Pandas等。 2. 导入必要的库:在代码的开头,需要导入贝叶斯网络相关的库,如pomegranate或pgmpy等。 3. 定义变量和概率表:根据具体问题,定义贝叶斯网络中的变量和它们之间的条件概率表。可以使用Python的数据结构,如列表或字典等来存储这些信息。 4. 创建贝叶斯网络模型:使用pomegranate或pgmpy等库中的函数,创建贝叶斯网络模型。这些库提供了用于构建和训练贝叶斯网络的各种方法和类。 5. 添加节点和边:使用贝叶斯网络模型提供的函数,添加节点和边。可以使用模型对象的方法来创建节点,并使用边的概率表来指定节点之间的条件概率。 6. 推理和预测:通过使用贝叶斯网络模型的推理法,可以进行概率推断和预测。根据给定的证据,可以使用模型对象的方法来获取变量的边缘概率或条件概率。 7. 可视化:将贝叶斯网络可视化,可以帮助理解和解释网络结构及其概率关系。可以使用相应的库函数将贝叶斯网络模型以图形方式绘制出来。 在Jupyter笔记本中构建贝叶斯网络时,可以逐步执行代码,并通过输出结果来验证贝叶斯网络的正确性。这样的交互性和可视化特点使得Jupyter成为一个非常方便的工具来构建和分析贝叶斯网络
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值