Skip to content

sosuts/HMMBase.jl

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Hidden Markov Models for Julia.

News

  • v1.1 (dev) : add integration with MLJ.jl.
  • v1.0 (stable) : HMMBase v1.0 comes with many new features and performance improvements (see the release notes), thanks to @nantonel PR#6. It also introduces breaking API changes (method and fields renaming), see Migration to v1.0 for details on migrating your code to the new version.
  • v0.0.14 : latest pre-release version.

Are you using HMMBase in a particular domain (Biology, NLP, ...) ? Feel free to open an issue to discuss your workflow/needs and see how we can improve HMMBase.

Introduction

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.
See HMMBase.jl - A lightweight and efficient Hidden Markov Model abstraction for more details on the motivation behind this package.


Benchmark of HMMBase against hmmlearn and pyhsmm.

Features:

  • Supports any observation distributions conforming to the Distribution interface.
  • Fast and stable implementations of the forward/backward, EM (Baum-Welch) and Viterbi algorithms.

Non-features:

  • Multi-sequences HMMs, see MS_HMMBase
  • Bayesian models, probabilistic programming, see Turing
  • Nonparametric models (HDP-H(S)MM, ...)

Installation

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

Documentation

  • STABLEdocumentation of the most recently tagged version.
  • DEVELdocumentation of the in-development version.

Project Status

The package is tested against Julia 1.0 and the latest Julia 1.x.

Starting with v1.0, we follow semantic versioning:

Given a version number MAJOR.MINOR.PATCH, increment the:

  1. MAJOR version when you make incompatible API changes,
  2. MINOR version when you add functionality in a backwards compatible manner, and
  3. PATCH version when you make backwards compatible bug fixes.

Questions and Contributions

Contributions are very welcome, as are feature requests and suggestions. Please read the CONTRIBUTING.md file for informations on how to contribute. Please open an issue if you encounter any problems.

Logo: lego by jon trillana from the Noun Project.

About

Hidden Markov Models for Julia.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Julia 100.0%