我需要对贝叶斯网络进行一些推理,例如我在下面创建的示例。 贝叶斯网络中的推理
我正在寻找像这样的事情来解决诸如P(F | A = True,B = True)的推论。我最初的做法是像做
For every possible output of F
For every state of each observed variable (A,B)
For every unobserved variable (C, D, E, G)
// Calculate Probability
但我不认为这会工作,因为我们确实需要许多变数一次走了过来,不是每一次。
我听说过珍珠算法的消息传递,但我还没有找到一个合理的描述,不是非常密集。为了增加信息,这些贝叶斯网络被约束为不超过15-20个节点,并且我们有所有的条件概率表,这些代码并不一定是快速或有效的。
基本上我正在寻找一种方法来做到这一点,不一定是最好的方式来做到这一点。
你的图只是一个例子,或者是所有观察到的最高变量? –
珍珠的消息传递算法只适用于网络,但不循环。对于离散和高斯变量的循环网络有精确的算法,但它们并不简单。我的建议是找一些软件做了计算,因此,所有你需要做的就是进入网络描述(变量,连接和概率表),并运行查询。这里有商业和非商业软件;对不起,我没有推荐。 –
图表只是一个例子,顶部变量并不总是严格遵守 – suphug22