美文网首页
隐式马尔科夫模型 及 Python + HMMlearn的使用

隐式马尔科夫模型 及 Python + HMMlearn的使用

作者: SaltSoup | 来源:发表于2019-04-15 11:54 被阅读0次

hmmlearn

隐式马尔科夫模型Hidden Markov Models(HMMs) 是一种通用的概率模型。一个可观测的变量X的序列被一个内部的隐藏状态Z所生成。其中,隐藏状态Z无法被直接观测。在隐藏状态之间的转移被假设是通过 马尔科夫链(Markov chain) 的形式。
模型可以表示为 起始概率向量\pi和转移概率矩阵A. 一个观测量生成的概率可以是关于\theta的任意分布,\theta基于当前的隐藏状态。

HMMs的3个基本问题:

  • 给定模型参数和观测数据,评估隐藏状态的最优序列
  • 给定模型参数和观测数据,计算数据的似然估计
  • 仅给定观测数据,评估模型参数

hmmlearn

hmmlearn 是Python支持HMMs的包。原来是sklearn的一部分,后来由于接口不一致分成单独的包了。不过使用起来和sklearn的其他模型类似。

构造HMM model:

model = hmm.GaussianHMM(各种参数初始化)
# 还支持 GMMHMM, MultinomialHMM

初始化的参数主要有n_components, covariance_type, n_iter。每个参数的作用我还没有研究。

training

通过fit方法。
输入是一个矩阵,包含拼接的观察序列concatenated sequences of observation (也就是samples),和序列的长度。

EM算法是背后拟合模型的算法。基于梯度优化的方法。通常会卡到一个局部极优值上。通常用户需要用不同的初始化跑多次fit,然后选择分数最高的模型。

分数通过score方法计算。
推导出的最优的隐藏状态可以调用predict方法获得。predict方法可以指定解码器算法。当前支持的有viterbi(Vierbi algorithm)和map (posteriori estimation)。

相关文章

网友评论

      本文标题:隐式马尔科夫模型 及 Python + HMMlearn的使用

      本文链接:https://www.haomeiwen.com/subject/zcieiqtx.html