基本的に、この宿題では、ビタビ アルゴリズムを使用して隠れマルコフ モデルを解こうとしています。オンラインで見つけた他のモデルをベースにしようとしましたが、先生からヒントを得て、考えすぎてしまいました。私は数学的な部分が得意で、紙の上で問題を解決する方法を理解していますが、それをPythonに翻訳するのは恐ろしいことです。
以下は、彼がヒントを手伝ってくれたこれまでのコードです。次のステップが何であるかわかりません。
import numpy as np
def viterbi(obs):
tmatr = np.array([[numpy.log2(0.7),
numpy.log2(0.2),numpy.log2(0.1)],
[numpy.log2(0.2), numpy.log2(0.5), numpy.log2(0.3)],[
numpy.log2(0.1),
numpy.log2(0.3), numpy.log2(0.6)])
omatr = np.array([[ numpy.log2(0.8), numpy.log2(0.2),
numpy.log2(0.0)],[ numpy.log2(0.2), numpy.log2(0.7),
numpy.log2(0.1)],
[numpy.log2(0.2), numpy.log2(0.5), numpy.log2(0.3)])
pathdict={
0: numpy.log2(.7),
1: numpy.log2(.2),
2: numpy.log2(.1),
}
probdict={
0: (numpy.log2(.7)+ omatr[0,obs_seq[0]]),
1: (numpy.log2(.2)+ omatr[1,obs_seq[0]]),
2: (numpy.log2(.1)+ omatr[2,obs_seq[0]]),
}
templist=[]
for t in range(1, 63):
for i in range(0,2):
for k in range(0,2):
templist.append(pathdict[k,i]+