4

我面临一个问题,即在简单的设置中估计自变量的联合概率。目前我有一个包含 100 个随机变量的数组,我想在不陷入下溢问题的情况下获得它们的联合概率。任何想法如何在 numpy 中实现这一目标?如果可能的话?

如果没有,请向我进一步解释 NumPy 例程(logaddexp)的作用,因为我认为在这种情况下它可能对我有帮助。

4

1 回答 1

9

logaddexp允许您通过存储和处理对数来扩展可表示值的范围(降低精度) 。

e1, e2 = np.log(p1), np.log(p2)    # convert p1, p2 to log form
e1e2 = e1 + e2                     # e1e2 is now np.log(p1 * p2)
e3 = np.logaddexp(e1, e2)          # e3 = np.log(p1 + p2)

您只需要将代码更改***、和*,并在最后转换回 with 。++np.logaddexpnp.exp

正常的 64 位双精度浮点具有最小正正常值 2.2E-308;存储日志可以为您提供有效的最小正数正常 1E-(1.7E308)。

于 2012-08-13T14:38:37.050 回答