Linux build Status Windows build status

Coverage Status

hsmmlearn is a library for unsupervised learning of hidden semi-Markov models with explicit durations. It is a port of the hsmm package for R, and in fact wraps the same underlying C++ library.

hsmmlearn borrows its name and the design of its api from hmmlearn.


hsmmlearn supports Python 2.7 and Python 3.4 and up. After cloning the repository, first install the requirements

pip install -r requirements.txt

Then run either

python setup.py develop


python setup.py install

to install the package from source.

To run the unit tests, do

python -m unittest discover -v .

Building the documentation

The documentation for hsmmlearn is a work in progress. To build the docs, first install the doc requirements, then run Sphinx:

cd docs
pip install -r doc_requirements.txt
make html

If everything goes well, the documentation should be in docs/_build/html.

Some of the documentation comes as jupyter notebooks, which can be found in the notebooks/ folder. Sphinx ingests these, and produces rst documents out of them. If you end up modifying the notebooks, run make notebooks in the documentation folder and check in the output.


hsmmlearn incorporates a significant amount of code from R’s hsmm package, and is therefore released under the GPL, version 3.0.