在 python 中使用 hmmlearn 包的发射概率

数据挖掘 Python 马尔科夫过程
2022-03-07 19:55:58

我正在学习 hmm 并尝试在 Python hmmlearn 包中实现它(http://hmmlearn.github.io/hmmlearn/hmm.html#building-hmm-and-generating-samples)。

但是我不太明白文档说的是什么:

本模块中的类包括 MultinomialHMM、GaussianHMM 和 GMMHMM。他们实现了 HMM,其发射概率由多项分布、高斯分布和高斯分布的混合确定。

这是否意味着当我们试图估计给定观察序列的模型时,发射概率只能是这三种?如果我想自己输入排放概率怎么办?

1个回答

根据您提供的相同文档,使用自定义发射概率的方法是:

" 1.1.3. 使用自定义发射概率实现 HMM
如果你想实现其他发射概率(例如 Poisson),你必须通过继承 _BaseHMM 并重写方法init、 _compute_log_likelihood 、 _set 和 _get 来实现一个新的 HMM 类以获得附加参数、_initialize_sufficient_statistics、_accumulate_sufficient_statistics 和 _do_mstep。”

注意:文档页面适用于 hmm.learn 版本 0.1.*,它不再是最新版本。也就是说,似乎在任何给定时间可用的文档页面可能与 hmmlearn 的最新版本不对应。例如,hmm 0.1.* 的示例代码不能与 hmm learn 0.20 一起运行。