动态贝叶斯网络概率之和不为 1.0

时间:2021-05-03 20:05:51

标签: python python-3.x

我现在正在尝试为我的论文创建一个动态贝叶斯网络,但它还没有完全起作用。我通过对给定数据集执行计算来计算 DBN 所需的所有概率。当模型尝试检查所有概率加起来是否为 1.0 时,它无法继续创建模型,因为该值为 1.0000000000000002。我认为这可能是一个舍入错误,但我不知道如何克服它。我已经尝试使用小数而不是浮点数,但这并不重要。我想知道是否有人有过概率总和不等于 1.0 的经历,是否有办法克服它?

1 个答案:

答案 0 :(得分:0)

没有关于您的贝叶斯网络架构的任何详细信息,鉴于您的概率总和的接近程度,我建议您确实遇到了舍入错误。您是否考虑过使用内置方法来接受具有公差的浮点错误?具体来说,即使是基本的 numpy 包也会产生它自己的舍入错误,并且内置了 numpy.allclose 方法供我们处理。

good_enough_bool = numpy.allclose(some_numpy_array, correct_numpy_array)