python - 如何在 Python 中为家庭作业创建特定的维特比算法?
问题描述
所以基本上对于这个作业,我们正在尝试使用维特比算法来解决一个隐藏的马尔可夫模型,我试图以我在网上找到的其他人为基础,但在得到老师的提示后,我想多了。我真的很擅长数学部分,并且理解如何在纸上解决这个问题我只是把它翻译成 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]+
解决方案
推荐阅读
- amazon-s3 - 上传到 S3 存储桶时如何解决最大执行时间?
- apache-spark - 如何在 Spark 中生成大字数文件?
- node.js - 11ty(十一)无法将数据从_data传递到模板
- python - 用于 C++ 右值 std::string && 的 Python SWIG 包装器
- java - 为什么这个java程序不能正常工作?
- ios - 向下滚动时不会出现 Swift Expandable tableView 单元格按钮
- c# - 增加 TCP 断开时间
- javascript - Javascript – history.pushState 中的绝对或相对 URL
- java - 在 Spring REST api 中验证 multipart/form-data
- c# - Remove ArrayOf From asp.net 【核心】Web Api xml响应