关于在数据缺失情况下使用EM算法估计贝叶斯网络结构

当我们要建立贝叶斯网络时,需要首先通过因果关系得到贝叶斯的网络结构,再训练得到贝叶斯网的参数集。这里,参数集往往是通过给定数据集进行统计计算得到,但是,有的时候,给定的数据集不一定是完整的,可能某一条或多条的数据缺失一个或两个数据。

这是需要我们在数据缺失的情况下计算参数集,当然最简单的方法是去掉具有缺失数据的行,这样显然在数据集较小的时候会造成参数集的严重不准确。

在贝叶斯引论那本书中提到要用EM算法来解决这个问题。其实EM算法就是最大化期望值算法,这个过程中我们计算在某随机参数情况下的最大似然值,然后根据此似然值对参数值进行了修正,再次计算极大似然值,不断迭代,知道计算得到的值在可接受的阀值范围内。

下面来说一下,他是咋实现的。

首先,输入数据是贝叶斯网络结构、缺失的数据集、收敛阀值

1、设初始迭代次数为0,网络参数为任意值。收敛阀值a

2、根据贝叶斯估计公式计算网络参数的似然值。

其中:

这里面最值注意的是,在计算的时候一定要进行进行一下归一化才能得到真正的结果哦。

进入循环体:

a、用oldscore记录似然值。

b、计算(E步骤)

c、计算的最大值,即“最大似然”撒(M步骤)

d、此时,得到了newScore,比较newScore和oldscore,如果在收敛阀值内,则迭代结束,newscore就是最终结果。否则,使用oldscore记录newscore,迭代次数加一,继续迭代。

 

在书中他还介绍了,使用团树传播方法来简化计算过程。后面再记录。流程。

 

这个算法可以将参数和缺失数据同时计算出来,虽然对方也不清楚他们要什么,但是跑不出这两个。

转载于:https://www.cnblogs.com/Vanior/archive/2012/07/06/2580012.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值