sequence modelling using HMMs
Project description
sequence-modelling
Numerically optimized time-series and sequence modelling in Python.
Key features
- Hidden Markov Models and Quasi-Deterministic Hidden Markov Models
- Numerically stable: floating point arithmetic performed in log space to avoid underflow
- Easy to use (based on the scikit-learn API)
- Pure Python and Numpy based
- Open source and commercially usable (BSD license)
- Support for discrete and continuous (Gaussian) emissions
Installation
The easiest way to install sequence-modelling is using pip:
pip install sequence-modelling
Example usage
import numpy as np
from sequence_modelling.emmissions import Gaussian
from sequence_modelling.hmm import StandardHMM
import sequence_modelling.hmmviz as plt
# define a 2-state HMM estimator with one-dimensional Gaussian emissions
# the transition matrix
A = np.array([[0.6, 0.4],
[0.3, 0.7],
[0.5, 0.5]])
# the emission object
O = Gaussian(mu=np.array([[-100.0, 100.0]]),
covar=np.array([[[10.0]], [[10.0]]]))
# build the HMM model object
hmm = StandardHMM(A, O)
# sample 100 observations from the generative model
obs, path = hmm.sample(dim=1, N=100)
# fit the model to the data
likelihood, ll, duration, rankn, res = hmm.fit([obs])
# decode (predict) the most likely state sequence using the Viterbi algorithm
decoded_path = hmm.viterbi(obs)
# visualize the decoded state sequence
from matplotlib.pyplot import figure, show
fa = figure()
plt.view_viterbi(fa.add_subplot(1, 1, 1), [obs], [decoded_path], hmm.O.mu, seq=0)
fa.tight_layout()
show()
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
sequence_modelling-0.1.3.tar.gz
(18.8 kB
view hashes)
Built Distribution
Close
Hashes for sequence_modelling-0.1.3-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 68f4a43b5efd6b65a98e5d81742a8bfdc83e0c29052ca0efa2b81677ee4a9aa2 |
|
MD5 | 5fc7f37aeee36984dcec7b0be99bfb21 |
|
BLAKE2b-256 | 26eb75e12d854e7a0c09e1f2e49e73d457b63208b6dfab681a8822e21619a42d |