Math HMM观测概率的计算

Math HMM观测概率的计算,math,probability,hidden-markov-models,Math,Probability,Hidden Markov Models,我把这个放进去,而不是,因为我在尝试一种编程方法,而不是数学方法 我有3个矩阵,一个过渡trans,一个发射emis(或观测误差)和一个状态state 为此,我还进行了一系列观察obs 我的方法很简单: prob = 1 # Probability of sequence is 1 to start with for o in obs: # For each observation: p_mult = dot(

我把这个放进去,而不是,因为我在尝试一种编程方法,而不是数学方法

我有3个矩阵,一个过渡
trans
,一个发射
emis
(或观测误差)和一个状态
state

为此,我还进行了一系列观察
obs

我的方法很简单:

prob = 1                       # Probability of sequence is 1 to start with
for o in obs:                  # For each observation:
    p_mult = dot(emiss, state) # Get the probability of each observation,
    p_mult = p_mult.get_elem(o)# select the corresponding observation
    prob = prob * p_mult       # and multiply that with the total probability
    state = dot(trans, state)  # Last, change the state using the transition matrix
print(prob)                    # Print answer
其中,
dot(x,y)
是两个矩阵(例如
{1x4}*{4x3}->{1x3}
)的点积,
x.get_elem(y)
取向量
x
y
第个元素


出于某种原因,这似乎不起作用,因为我计算的概率与其他概率不匹配。有人能告诉我这个推理有什么问题吗?

您正在尝试实现一个向前向后的算法。您可以通过与Wikipedia示例进行逐步比较来测试您的方法:还有一个建议的Python实现,您正在尝试实现一个向前向后的算法。您可以通过逐步比较Wikipedia示例来测试您的方法:还有一个建议的Python实现。