Python中的隐马尔可夫模型
hmmp的Python项目详细描述
Python包hmmpy
实现了三个不同的类,这些类是打算向用户公开的。课程包括:
HiddenMarkovModel
DiscreteHiddenMarkovModel
GaussianHiddenMarkovModel
各班对观察结果的假设各不相同。类HiddenMarkovModel
支持任何发射概率,但没有用于估计与发射概率相关的参数的任何程序。接下来的两个类通过分别假设观测值的高斯分布或离散分布来解决这个问题。Baum-Welch算法现在可以估计离散发射概率或与状态相关的平均值和协方差。这三个对象的构造函数的输入略有不同。这三种方法都要求以状态列表的形式提供状态空间。它们还需要表示转移概率和初始概率的函数。提供的转移概率函数应该从状态空间中获取两个对象,并返回从第一个对象到第二个对象的转换概率。函数不需要规范化,即在所有状态上求和为1,因为这是在内部处理的,而不管如何。初始概率函数应返回其唯一参数的初始概率,该参数应为所提供状态的状态。最后一个参数取决于调用的对象。对象HiddenMarkovModel
需要一个函数,该函数返回给定观测值和状态时某个观测值的发射概率。对象GaussianHiddenMarkovModel
需要各种状态的平均值和协方差的初始值数组。对象DiscreteHiddenMarkovModel
需要一个“符号”列表(即观察空间)和一个函数,该函数在给定状态时返回所提供“符号”的概率。在
在一个对象被实例化之后,一个人可以访问诸如decode
这样的方法,它返回估计的隐藏状态序列,reestimate
,后者运行Baum Welch一定次数以学习模型参数。在此过程中,可学习参数的内部表示在每次迭代后都会更新。在
将提供活页夹笔记本和使用示例。在
- 项目
标签: