Math HMM观测概率的计算
我把这个放进去,而不是,因为我在尝试一种编程方法,而不是数学方法 我有3个矩阵,一个过渡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(
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实现。