HMMBase provides a lightweight and efficient abstraction for hidden Markov models in Julia. Most HMMs libraries only support discrete (e.g. categorical) or normal distributions. In contrast HMMBase builds upon Distributions.jl to support arbitrary univariate and multivariate distributions.
The goal is to provide well-tested and fast implementations of the basic HMMs algorithms such as the forward-backward algorithm, the Viterbi algorithm, and the MLE estimator. More advanced models, such as Bayesian HMMs, can be built upon HMMBase.
The package can be installed with the Julia package manager. From the Julia REPL, type
] to enter the Pkg REPL mode and run:
pkg> add HMMBase
HMMBase supports any observations distributions implementing the
Distribution interface from Distributions.jl.
using Distributions, HMMBase # Univariate continuous observations hmm = HMM([0.9 0.1; 0.1 0.9], [Normal(0,1), Gamma(1,1)]) # Multivariate continuous observations hmm = HMM([0.9 0.1; 0.1 0.9], [MvNormal([0.,0.],[1.,1.]), MvNormal([0.,0.],[1.,1.])]) # Univariate discrete observations hmm = HMM([0.9 0.1; 0.1 0.9], [Categorical([0.3, 0.7]), Categorical([0.8, 0.2])]) # Multivariate discrete observations hmm = HMM([0.9 0.1; 0.1 0.9], [Multinomial(10, [0.3, 0.7]), Multinomial(10, [0.8, 0.2])])
See the Manual section for more details on the models and algorithms, or jump directly to the Examples.
Logo: lego by jon trillana from the Noun Project.