隐马尔科夫模型 介绍 HMM python代码
#HMM Forward algorithm
#inputMatrix A,B vector pi
importnumpy as np
A=np.array([,,])
B=np.array([,,])
O=np.array()#T=3
#O=np.array()#T=3
pi=np.array()
N=3#N kind state
M=2#M kind of observation
T=3
#initialize:
Aerfa=np.zeros((3,3),np.float)
for i in range(N):
Aerfa=pi*B]
#Recursion:
for t in range(T-1):
for i in range(N):
for j in range(N):
Aerfa+=Aerfa*A
Aerfa*=B]
#compute P(O|lamda) and termination
P=0
for i in range(N):
P+=Aerfa#begin with 0 so T-1
print P
#backward
#initialize:
Beta=np.zeros((T,N),np.float)
print Beta
for i in range(N):
Beta=1
#recursion:
for t in range(T-2,-1,-1):
for i in range(N):
for j in range(N):
Beta+=A*B]*Beta
#termination:
P_back=0
for i in range(N):
P_back+=pi*B]*Beta
print P_back
参考文献:统计学习方法,李航。
下一篇将介绍:问题3的具体解决方法为维比特算法(biterbi) algorithm
本人水平有限,怀着分享学习的态度发表此文,欢迎大家批评,交流。感谢您的阅读。
欢迎转载本文,转载时请附上本文地址:http://www.iyunv.com/Dzhouqi/p/3203788.html
另外:欢迎访问我的博客 http://www.iyunv.com/Dzhouqi/
页:
[1]