我正在写一个算法,其中给定一个模型,我计算数据集列表的可能性,然后需要将每个可能性归一化(概率)。所以像[0.00043,0.00004,0.00321]这样的东西可能会被转换为[0.2,0.03,0.77]。 我的问题是,我正在使用的日志可能性非常小(例如,在日志空间中,值类似-269647.432,-231444.981等)。在我的C++代码中,当我尝试添加其中两个(通过指数)我得到一个“Inf”的答案。我试图将它们添加到日志空间(Summation/Subtraction of log)中,但又一次遇到了同样的问题。正常化一个非常小的双数字(可能性)的列表
有人可以分享他/她的专家意见吗?
感谢
某些东西没有正确的味道。有了这些对数,就会有非常多的零。你计算的东西正确吗?你能展示一些你的代码吗? – John
你能告诉我们一个可管理的代码部分吗,这样我们可以更好地了解你的问题吗? – BrainSteel
因此,要清楚地说明,您需要“正常化”一些6位负数范围内的数字,作为实际值的对数。这会让你乘坐不可能的驾驶带来一场长途旅行。 (hitchhikers.wikia.com/wiki/Infinite_Improbability_Drive)。正如约翰所说,这似乎是错误的......这些数字非常小,以至于在电子高尔夫在宇宙中打球时击中一个原子的可能性更大。 –