如果我们采用概率的对数,则返回的值为负。值在信息检索库的匹配器中使用,拒绝负值,因此我需要将负值钳制为正值,以便匹配器不拒绝文件。
一种方法可以是将随机数加K表示概率
即返回max(log(prob。+ K),其中K是一个大常数或返回最大值(log(K.Prob),0)其中K是一个大常数
有没有更好的方法将负对数值钳制为正值?哪一个是更好的方法?
如果我们选择上述方法中的任何一种,我对如何选择合适的K感到非常头晕。如果有人可以建议如何选择合适的大K,我会很高兴吗?
PS使用对数值是很重要的,因为我们正在尝试实现我们需要乘以概率的模型,但是由于架构的不可行性来支持我们将概率的对数相加,这是概率的乘积,因此使用日志值很重要(在这里采用antilog不是一种可行的方法)答案 0 :(得分:4)
您始终可以使用log(1 + p)。这将抵消你的范围(-inf,0] - > [0,log(2)]。我认为这将解决你的问题。
最常用的方法是按照其他人的建议对日志进行否定。您也可以使用1 /(1-log(p)),但这对您的情况没有帮助。
所以log(1 + p)似乎是最好的解决方案。