0

我有一个很大的可能性向量,都在范围内(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.

4

1 回答 1

0

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

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

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

于 2017-04-21T00:34:34.710 回答