HiddenMarkovModels.jl
HiddenMarkovModels.jl: generic, fast and reliable state space modeling - Published in JOSS (2024)
Science Score: 100.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
✓CITATION.cff file
Found CITATION.cff file -
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
✓DOI references
Found 11 DOI reference(s) in README and JOSS metadata -
✓Academic publication links
Links to: ieee.org, joss.theoj.org, zenodo.org -
✓Committers with academic emails
1 of 4 committers (25.0%) from academic institutions -
○Institutional organization owner
-
✓JOSS paper metadata
Published in Journal of Open Source Software
Keywords
Scientific Fields
Repository
A Julia package for simulation, inference and learning of Hidden Markov Models.
Basic Info
- Host: GitHub
- Owner: gdalle
- License: mit
- Language: Julia
- Default Branch: main
- Homepage: https://gdalle.github.io/HiddenMarkovModels.jl/
- Size: 11.6 MB
Statistics
- Stars: 107
- Watchers: 2
- Forks: 11
- Open Issues: 10
- Releases: 18
Topics
Metadata Files
README.md
HiddenMarkovModels.jl
A Julia package for simulation, inference and learning of Hidden Markov Models with discrete states and discrete time.
Getting started
This package can be installed using Julia's package manager:
julia
pkg> add HiddenMarkovModels
Then, you can create your first model as follows:
julia
using Distributions, HiddenMarkovModels
init = [0.6, 0.4]
trans = [0.7 0.3; 0.2 0.8]
dists = [Normal(-1.0), Normal(1.0)]
hmm = HMM(init, trans, dists)
Take a look at the documentation to know what to do next!
Some background
Hidden Markov Models (HMMs) are a widely used modeling framework in signal processing, bioinformatics and plenty of other fields. They explain an observation sequence $(Yt)$ by assuming the existence of a latent Markovian state sequence $(Xt)$ whose current value determines the distribution of observations. In some scenarios, the state and the observation sequence are also allowed to depend on a known control sequence $(U_t)$. Each of the problems below has an efficient solution algorithm, available here:
| Problem | Goal | Algorithm | | ---------- | -------------------------------------- | ---------------- | | Evaluation | Likelihood of the observation sequence | Forward | | Filtering | Last state marginals | Forward | | Smoothing | All state marginals | Forward-backward | | Decoding | Most likely state sequence | Viterbi | | Learning | Maximum likelihood parameter | Baum-Welch |
Take a look at this tutorial to know more about the math:
A tutorial on hidden Markov models and selected applications in speech recognition, Rabiner (1989)
Main features
This package is generic. Observations can be arbitrary Julia objects, not just scalars or arrays. Number types are not restricted to floating point, which enables automatic differentiation. Time-dependent or controlled HMMs are supported out of the box.
This package is fast. All the inference functions have allocation-free versions, which leverage efficient linear algebra subroutines. We will include extensive benchmarks against Julia and Python competitors.
This package is reliable. It gives the same results as the previous reference package up to numerical accuracy. The test suite incorporates quality checks as well as type stability and allocation analysis.
Citation
If this package is useful to your research, please cite the JOSS paper. Here is the BibTeX key:
bibtex
@article{
Dalle2024,
doi = {10.21105/joss.06436},
url = {https://doi.org/10.21105/joss.06436},
year = {2024},
publisher = {The Open Journal},
volume = {9},
number = {96},
pages = {6436},
author = {Guillaume Dalle},
title = {HiddenMarkovModels.jl: generic, fast and reliable state space modeling},
journal = {Journal of Open Source Software}
}
Contributing
If you spot a bug or want to ask about a new feature, please open an issue on the GitHub repository. Once the issue receives positive feedback, feel free to try and fix it with a pull request that follows the BlueStyle guidelines.
Acknowledgements
A big thank you to Maxime Mouchet and Jacob Schreiber, the respective lead devs of alternative packages HMMBase.jl and pomegranate, for their help and advice. Logo by Clément Mantoux based on a portrait of Andrey Markov.
Owner
- Name: Guillaume Dalle
- Login: gdalle
- Kind: user
- Location: Lausanne
- Company: EPFL
- Website: https://gdalle.github.io/
- Twitter: giomdal
- Repositories: 21
- Profile: https://github.com/gdalle
Postdoctoral researcher
JOSS Publication
HiddenMarkovModels.jl: generic, fast and reliable state space modeling
Authors
Information, Learning and Physics laboratory, Ecole Polytechnique Fédérale de Lausanne (EPFL), Station 11, CH-1015 Lausanne, Information and Network Dynamics laboratory, Ecole Polytechnique Fédérale de Lausanne (EPFL), Station 14, CH-1015 Lausanne, Statistical Physics of Computation laboratory, Ecole Polytechnique Fédérale de Lausanne (EPFL), CH-1015 Lausanne
Tags
statistics hmm inference estimationCitation (CITATION.cff)
# This CITATION.cff file was generated with cffinit.
# Visit https://bit.ly/cffinit to generate yours today!
cff-version: "1.2.0"
authors:
- family-names: Dalle
given-names: Guillaume
orcid: "https://orcid.org/0000-0003-4866-1687"
doi: 10.5281/zenodo.10931812
message: If you use this software, please cite our article in the
Journal of Open Source Software.
preferred-citation:
authors:
- family-names: Dalle
given-names: Guillaume
orcid: "https://orcid.org/0000-0003-4866-1687"
date-published: 2024-04-05
doi: 10.21105/joss.06436
issn: 2475-9066
issue: 96
journal: Journal of Open Source Software
publisher:
name: Open Journals
start: 6436
title: "HiddenMarkovModels.jl: generic, fast and reliable state space
modeling"
type: article
url: "https://joss.theoj.org/papers/10.21105/joss.06436"
volume: 9
title: "HiddenMarkovModels.jl: generic, fast and reliable state space
modeling"
GitHub Events
Total
- Create event: 18
- Commit comment event: 11
- Release event: 3
- Issues event: 11
- Watch event: 19
- Delete event: 14
- Issue comment event: 49
- Push event: 38
- Pull request review event: 15
- Pull request review comment event: 25
- Pull request event: 30
- Fork event: 6
Last Year
- Create event: 18
- Commit comment event: 11
- Release event: 3
- Issues event: 11
- Watch event: 19
- Delete event: 14
- Issue comment event: 49
- Push event: 38
- Pull request review event: 15
- Pull request review comment event: 25
- Pull request event: 30
- Fork event: 6
Committers
Last synced: 5 months ago
Top Committers
| Name | Commits | |
|---|---|---|
| Guillaume Dalle | 2****e | 163 |
| adannenberg | a****g@g****m | 1 |
| Tim Hargreaves | 3****s | 1 |
| Guillaume Faye-Bédrin | g****n@s****r | 1 |
Committer Domains (Top 20 + Academic)
Issues and Pull Requests
Last synced: 4 months ago
All Time
- Total issues: 34
- Total pull requests: 99
- Average time to close issues: 4 months
- Average time to close pull requests: 5 days
- Total issue authors: 10
- Total pull request authors: 3
- Average comments per issue: 2.32
- Average comments per pull request: 1.13
- Merged pull requests: 88
- Bot issues: 0
- Bot pull requests: 0
Past Year
- Issues: 9
- Pull requests: 25
- Average time to close issues: 4 months
- Average time to close pull requests: 19 days
- Issue authors: 4
- Pull request authors: 3
- Average comments per issue: 1.22
- Average comments per pull request: 1.72
- Merged pull requests: 19
- Bot issues: 0
- Bot pull requests: 0
Top Authors
Issue Authors
- gdalle (24)
- rsenne (3)
- tbeason (2)
- dmetivie (2)
- THargreaves (2)
- mcwaga (1)
- dan-sprague (1)
- JuliaTagBot (1)
- gfayebedrin (1)
- camilogarciabotero (1)
Pull Request Authors
- gdalle (120)
- fausto-mpj (2)
- THargreaves (1)
- adannenberg (1)
- andreramosfdc (1)
- gfayebedrin (1)
Top Labels
Issue Labels
Pull Request Labels
Packages
- Total packages: 1
-
Total downloads:
- julia 26 total
- Total dependent packages: 0
- Total dependent repositories: 1
- Total versions: 17
juliahub.com: HiddenMarkovModels
A Julia package for simulation, inference and learning of Hidden Markov Models.
- Homepage: https://gdalle.github.io/HiddenMarkovModels.jl/
- Documentation: https://docs.juliahub.com/General/HiddenMarkovModels/stable/
- License: MIT
-
Latest release: 0.7.0
published 9 months ago
Rankings
Dependencies
- JuliaRegistries/TagBot v1 composite
- actions/checkout v3 composite
- actions/upload-artifact v1 composite
- openjournals/openjournals-draft-action master composite
- julia-actions/RegisterAction latest composite
- actions/checkout v2 composite
- codecov/codecov-action v2 composite
- julia-actions/cache v1 composite
- julia-actions/julia-buildpkg v1 composite
- julia-actions/julia-processcoverage v1 composite
- julia-actions/julia-runtest v1 composite
- julia-actions/setup-julia v1 composite
- actions/checkout v2 composite
- julia-actions/julia-buildpkg v1 composite
- julia-actions/julia-docdeploy v1 composite
- julia-actions/setup-julia v1 composite