隐马尔科夫模型,第三种问题解法,维比特算法(biterbi) algorithm python代码
上篇介绍了隐马尔科夫模型
本文给出关于问题3解决方法,并给出一个例子的python代码
回顾上文,问题3是什么,
下面给出,维比特算法(biterbi) algorithm

下面通过一个具体例子,来说明维比特算法(biterbi)

下面附上该解决该例题的python代码
import numpy as np
#you must install the numpy A=np.array([[0.5,0.2,0.3],[0.3,0.5,0.2],[0.2,0.3,0.5]])
B=np.array([[0.5,0.5],[0.4,0.6],[0.7,0.3]])
O=np.array([0 ,1, 0])#T=3
pi=np.array([0.2,0.4,0.4]) N=3#N kind state
M=2#M kind of observation
T=3 #initialize: delta=np.zeros((T,N),np.float)
w=np.zeros((T,3),np.float)
I=np.zeros(T) for i in range(N):
delta[0,i]=pi[i]*B[i,O[0]]
w[0,i]=0 #Recursion:
for t in range(1,T):
for i in range(N):
delta[t,i]=B[i,O[t]]*np.array([delta[t-1,j]*A[j,i] for j in range(N)]).max()
w[t,i]=np.array([delta[t-1,j]*A[j,i] for j in range(N)]).argmax() #termination
Poptimal=delta[T-1,:].max()
I[T-1]=delta[T-1,:].argmax()
for t in range(T-2,-1,-1):
I[t]=w[t+1,I[t+1]] print 'the optimal I is ' I
参考文献:统计学习方法,李航
本人水平有限,怀着分享学习的态度发表此文,欢迎大家批评,交流。感谢您的阅读。
欢迎转载本文,转载时请附上本文地址:http://www.cnblogs.com/Dzhouqi/p/3203795.html
另外:欢迎访问我的博客 http://www.cnblogs.com/Dzhouqi/
隐马尔科夫模型,第三种问题解法,维比特算法(biterbi) algorithm python代码的更多相关文章
- 隐马尔科夫模型(Hidden Markov Models)
链接汇总 http://www.csie.ntnu.edu.tw/~u91029/HiddenMarkovModel.html 演算法笔记 http://read.pudn.com/downloads ...
- 隐马尔科夫模型(hidden Markov Model)
万事开头难啊,刚开头确实不知道该怎么写才能比较有水平,这篇博客可能会比较长,隐马尔科夫模型将会从以下几个方面进行叙述:1 隐马尔科夫模型的概率计算法 2 隐马尔科夫模型的学习算法 3 隐马尔科夫模型 ...
- 隐马尔科夫模型 HMM(Hidden Markov Model)
本科阶段学了三四遍的HMM,机器学习课,自然语言处理课,中文信息处理课:如今学研究生的自然语言处理,又碰见了这个老熟人: 虽多次碰到,但总觉得一知半解,对其了解不够全面,借着这次的机会,我想要直接搞定 ...
- 隐马尔科夫模型HMM(三)鲍姆-韦尔奇算法求解HMM参数
隐马尔科夫模型HMM(一)HMM模型 隐马尔科夫模型HMM(二)前向后向算法评估观察序列概率 隐马尔科夫模型HMM(三)鲍姆-韦尔奇算法求解HMM参数(TODO) 隐马尔科夫模型HMM(四)维特比算法 ...
- 隐马尔科夫模型python实现简单拼音输入法
在网上看到一篇关于隐马尔科夫模型的介绍,觉得简直不能再神奇,又在网上找到大神的一篇关于如何用隐马尔可夫模型实现中文拼音输入的博客,无奈大神没给可以运行的代码,只能纯手动网上找到了结巴分词的词库,根据此 ...
- HMM基本原理及其实现(隐马尔科夫模型)
HMM(隐马尔科夫模型)基本原理及其实现 HMM基本原理 Markov链:如果一个过程的“将来”仅依赖“现在”而不依赖“过去”,则此过程具有马尔可夫性,或称此过程为马尔可夫过程.马尔可夫链是时间和状态 ...
- 基于隐马尔科夫模型(HMM)的地图匹配(Map-Matching)算法
文章目录 1. 1. 摘要 2. 2. Map-Matching(MM)问题 3. 3. 隐马尔科夫模型(HMM) 3.1. 3.1. HMM简述 3.2. 3.2. 基于HMM的Map-Matchi ...
- 隐马尔科夫模型HMM学习最佳范例
谷歌路过这个专门介绍HMM及其相关算法的主页:http://rrurl.cn/vAgKhh 里面图文并茂动感十足,写得通俗易懂,可以说是介绍HMM很好的范例了.一个名为52nlp的博主(google ...
- HMM 自学教程(四)隐马尔科夫模型
本系列文章摘自 52nlp(我爱自然语言处理: http://www.52nlp.cn/),原文链接在 HMM 学习最佳范例,这是针对 国外网站上一个 HMM 教程 的翻译,作者功底很深,翻译得很精彩 ...
随机推荐
- C语言 SDK编程之通用控件的使用--ListView
一.ListView控件属于通用控件CONTROL中的一种,在SDK编程方式时要使用通用控件 必须包含comctl32.dll,所以代码中要有头文件: commctrl.h 导入库:comctl32. ...
- SQL技巧之行列转换
比如:id 姓名 状态 1 刘德华 12 刘德华 23 周华健 04 吴彦祖 1 在access中,用一条sql查询 ...
- UserControl eventhander 注册问题
1. 如果主页面调用UserControl来画界面 2. UserControl局部变化需要通过事件通知主页面,通过UserControl定义EventHandler,主界面注册UserControl ...
- asp.net webform download excel
private void exportBinaryToExcel(byte[] bytes, string filename) { Response.AddHeader("Content-D ...
- 粗谈Android中的对齐
在谈这个之前先啰嗦几个概念. 基线:书写英语单词时为了规范书写会设有四条线,从上至下第三条就是基线.基线对齐主要是为了两个控件中显示的英文单词的基线对齐,如下所示: Start:在看API的时候经常会 ...
- Android桌面悬浮清内存app概述
今天闲来无事写了一个清内存的小东西,类似360,在桌面上悬浮,点击后清除后台无用程序,清除后台程序是通过调用ActivityManger.killBackgroundProcesses的方式来进行的, ...
- Cassandra1.2文档学习(16)—— 模式的变化
参考文档:http://www.datastax.com/documentation/cassandra/1.2/webhelp/index.html#cassandra/dml/dml_schema ...
- linux命令 chattr超级权限控件
linux命令:chattr 1.作用 修改ext2和ext3文件系统属性(attribute),使用权限超级用户. linux命令:chattr 1.作用修改ext2和ext3文件系统属性(at ...
- Python本地化例子 - gettext 模块
关键字:Python 3.4,gettext,本地化,Localization OS:Windows 7,Mac 1. 创建一个locsample.py文件,文件内容如下,把所有需要本地化的字符串放到 ...
- WCF 傻瓜教程
第一步,新建WCF服务应用程序 第二步,定义接口: 修改接口类,定义你要的方法接口默认文件名:IService1.cs 第三步,实现接口: 在svc文件里实现接口方法,默认文件名:Service1.s ...