Python隐形马尔科夫实战_python实现隐马尔科夫模型HMM

一份完全按照李航<>介绍的HMM代码,供大家参考,具体内容如下

#coding=utf8

'''''

Created on 2017-8-5

里面的代码许多地方可以精简,但为了百分百还原公式,就没有精简了。

@author: adzhua

'''

import numpy as np

class HMM(object):

def __init__(self, A, B, pi):

'''''

A: 状态转移概率矩阵

B: 输出观察概率矩阵

pi: 初始化状态向量

'''

self.A = np.array(A)

self.B = np.array(B)

self.pi = np.array(pi)

self.N = self.A.shape[0] # 总共状态个数

self.M = self.B.shape[1] # 总共观察值个数

# 输出HMM的参数信息

def printHMM(self):

print ("==================================================")

print ("HMM content: N =",self.N,",M =",self.M)

for i in range(self.N):

if i==0:

print ("hmm.A ",self.A[i,:]," hmm.B ",self.B[i,:])

else:

print (" ",self.A[i,:]," ",self.B[i,:])

print ("hmm.pi",self.pi)

print ("==================================================")

# 前向算法

def forwar(self, T, O, alpha, prob):

'''''

T: 观察序列的长度

O: 观察序列

alpha: 运算中用到的临时数组

prob: 返回值所要求的概率

'''

# 初始化

for i in range(self.N):

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值