【问题标题】:Avoiding -inf when calculating Log Likelihood (MATLAB)在计算对数似然 (MATLAB) 时避免使用 -inf
【发布时间】:2015-03-31 15:39:23
【问题描述】:

使用MATLAB计算时

Log_likelihood=log((1/1e8)*exp(-0.5*SSR)),

如果 SSR(即标准平方误差)很大(例如 SSR=1e4),则 exp() 变为 0,Log_likelihood 变为 -inf。

有什么数字/数学技巧可以解决这个问题吗?

谢谢

【问题讨论】:

  • 一种天真的方法类似于 p = (1/1e8)*exp(-0.5*SSR); 后跟 p(p < 1e-100) = 1e-100; ... Log_likelihood=log(p);
  • 你应该结合日志和exp进程。阅读此lingpipe-blog.com/2012/02/16/…

标签: matlab exponent


【解决方案1】:

假设您的log 是自然对数:

log(a*exp(b)) = log(a) + log(exp(b)) = log(a) + b.

a=(1/1e8), b = -0.5*SSR
而且log(1/1e8) = log(1) - log(1e8),所以上面变成-log(1e8) + b,而第一项是常数,可以预先计算。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-13
    • 2018-11-08
    • 2018-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-02
    • 2020-01-19
    相关资源
    最近更新 更多