跳转到主要内容

使用Numba的离散隐马尔可夫模型

项目描述

Hmmkay Build Status Documentation Status python versions

🤔👌

使用Numba的离散隐马尔可夫模型

Hmmkay是一个基于numba即时编译的基本库,用于离散隐马尔可夫模型。它支持解码、似然评分、拟合(参数估计)和采样。

Hmmkay接受任意长度的序列,例如2d numpy数组或可迭代对象的列表。Hmmkay将可迭代对象的列表内部转换为Numba类型化numpy数组列表。

安装

pip install hmmkay

需要Python 3.6或更高版本。

示例

评分和解码

from hmmkay.utils import make_observation_sequences
sequences = make_observation_sequences(n_seq=100, n_observable_states=4, random_state=0)
hmm.fit(sequences)

from hmmkay.utils import make_proba_matrices
from hmmkay import HMM

init_probas, transition_probas, emission_probas = make_proba_matrices(
    n_hidden_states=2,
    n_observable_states=4,
    random_state=0
)
hmm = HMM(init_probas, transition_probas, emission_probas)

sequences = [[0, 1, 2, 3], [0, 2]]
hmm.log_likelihood(sequences)
-8.336
hmm.decode(sequences)  # most likely sequences of hidden states
[array([1, 0, 0, 1], dtype=int32), array([1, 0], dtype=int32)]

拟合

from hmmkay.utils import make_observation_sequences
sequences = make_observation_sequences(n_seq=100, n_observable_states=4, random_state=0)
hmm.fit(sequences)

采样

hmm.sample(n_obs=2, n_seq=3)  # return sequences of hidden and observable states
(array([[0, 1],
        [1, 1],
        [0, 0]]), array([[0, 2],
        [2, 3],
        [0, 0]]))

文档

文档可在https://hmmkay.readthedocs.io/en/latest/在线查看

基准测试

它应该比hmmlearn快。以下是我在笔记本电脑上运行benchmark.py脚本的测试结果

bench

状态

高度实验性,API可能随时更改,无需弃用。

开发

以下包是测试所需的

pip install pytest hmmlearn scipy

用于基准测试

pip install matplotlib hmmlearn

用于文档

pip install sphinx sphinx_rtd_theme

为了开发,请使用pre-commit hooks进行black和flake8。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码发行版

此发行版没有可用的源代码发行版文件。请参阅生成发行版存档的教程

构建发行版

hmmkay-0.0.1-py3-none-any.whl (10.6 kB 查看哈希值)

上传时间 Python 3

由以下支持