问题描述
@H_404_0@我想找到最大可能的路径,并尝试关联日志概率以消除步骤顺序相乘时的下溢错误。
@H_404_0@在计算最大可能路径时,我迭代地仅保留最佳路径,并从头到尾删除其他路径(请考虑此处绘制的图像)。第一步之后(我不必删除任何操作,从初始状态到第一状态只有一条路径),我将仅保留通往该状态的最佳路径,并且该状态直至该状态的概率都将达到该水平。>
@H_404_0@在第3步(此处未显示)中,该分数将与其他状态转换概率相乘,并且算法将在第三步选择到达每个状态的最佳路径。但是,如您所见,由于与节点关联的分数(标记为*)为-3.0,因此在尝试计算其对数值时会抛出ValueError。有什么想法可以摆脱吗?
@H_404_0@
probability = math.log2(best_incoming_weight) + math.log2(current_incoming_weights)
解决方法
您计算了概率的对数。它必须为负数或零,因为介于0和1之间的任何数字的对数均为非正数。要将获得的结果转换为传统概率,您需要计算2**probability
,其中probability
如上所述。