python计算条件概率_概率计算:定义概率分布数据结构,Python实现概率分布计算...

本文介绍了如何在Python中定义概率分布数据结构,包括因子对象Factor的实现,它包含随机变量、变量维度和概率值。此外,还展示了如何进行概率计算,如正则化、获取边缘概率和条件概率。通过定义Factor类,可以方便地表示和操作随机变量的概率分布,为马尔科夫随机场和蒙特卡洛采样的算法提供了基础。
摘要由CSDN通过智能技术生成

使用Python实现马尔科夫随机场、蒙特卡洛采样等随机过程算法的前提,就是用Python实现概率的计算。并不只是数值计算,而是能够将随机模拟中常用的各种概率相关的操作,都能用计算机的数据结构来表达,其关键在于对【随机变量】的适当定义处理。

因此本文介绍一下概率分布在Python中定义的一种数据结构。

一个概率分布的组成要素包含:随机变量、变量的维度、变量不同取值状态的对应概率值。

在一个有向图中(贝叶斯网络),常有如下所示的结构:

206660716_1_20201106060314212

典型的贝叶斯网络

在这个贝叶斯网络中,有五个随机变量,各自有不同的维度,并且在列表中给出了对应变量取值的概率值。因此我们的目标可以拆解为两步,第一:

用Python精准地定义一个因子对象(记为Factor),这个对象表达一个联合分布,其中包含随机变量、变量维度、对应概率值这三个信息。

第二:

实现概率相乘、求边缘概率、求条件概率运算。

这次先解决问题一。

将概率分布间的计算用python表达出来,包括对一个联合分布求某个变量的边缘概率分布,对一个联合分布给定一部分变量的取值,求条件概率分布。以及更基础的,求两个因子的乘积-状态维度和状态维度的相乘,所对应的概率值的数量也同样扩大。

最后,分别获取这个贝叶斯网络中每个因子的概率分布,我们要求出整个网络的联合分布ÿ

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值