【问题标题】:Likelihood involving very small numbers涉及非常小的数字的可能性
【发布时间】:2017-04-21 00:21:44
【问题描述】:

我有一个很大的似然向量,范围都在(0 到 1)范围内,但所有数字都远小于 1。我需要计算这些向量乘积的最大似然。

如何避免下溢,我的装配工在我所有的尝试中都失败了。我采取的第一步是将数组除以数组中的最大值。 我正在最大化采样 n 次的两个概率之和的乘积,最终我需要根据 BIC 最小化:

BIC = -2. * ln(L) + 5n_theta(nz)

无论如何L 是一个由非常小的数字组成的数组

L = product of ([(p(z1|a) + p(z1|b)), (p(z2|a) + p(z2|b)), ...., (p(zn|a) + p(zn|b))])

这是一个示例,其中包含两个参数 ab,我改变了它们,数组的大小为 n,每个 p< 1

【问题讨论】:

    标签: python numpy data-fitting underflow


    【解决方案1】:

    您是否考虑过在对数似然中工作?

    L = (p1 * p2 * p3) ** N 变为 ln(L) = N * (ln(p1) + ln(p2) + ln(p3)) 这将更能抵抗数值精度问题。

    然后你可以直接在你的-2.0 * ln(L) + 5n_theta(nz)中使用ln(L)

    【讨论】:

    • 您好,我意识到我对我的问题的解释有多么糟糕,我已经对其进行了大量编辑。
    • 我尝试过类似的方法,但我相信我可能实施不正确,感谢您的帮助,我会审查
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-06
    • 2013-08-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多