不正狼 发表于 2015-4-24 05:00:29

隐马尔科夫模型 介绍 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]
查看完整版本: 隐马尔科夫模型 介绍 HMM python代码