https://github.com/dmetivie/hiddenmarkovmodels.jl
A Julia package for simulation, inference and learning of Hidden Markov Models.
Science Score: 23.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
○codemeta.json file
-
○.zenodo.json file
-
✓DOI references
Found 6 DOI reference(s) in README -
✓Academic publication links
Links to: ieee.org, joss.theoj.org, zenodo.org -
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (12.0%) to scientific vocabulary
Last synced: 5 months ago
·
JSON representation
Repository
A Julia package for simulation, inference and learning of Hidden Markov Models.
Basic Info
- Host: GitHub
- Owner: dmetivie
- License: mit
- Language: Julia
- Default Branch: main
- Homepage: https://gdalle.github.io/HiddenMarkovModels.jl/
- Size: 1.66 MB
Statistics
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
- Releases: 0
Fork of gdalle/HiddenMarkovModels.jl
Created almost 2 years ago
· Last pushed almost 2 years ago
https://github.com/dmetivie/HiddenMarkovModels.jl/blob/main/
# HiddenMarkovModels.jl [](https://gdalle.github.io/HiddenMarkovModels.jl/stable/) [](https://gdalle.github.io/HiddenMarkovModels.jl/dev/) [](https://github.com/gdalle/HiddenMarkovModels.jl/actions/workflows/test.yml?query=branch%3Amain) [](https://app.codecov.io/gh/gdalle/HiddenMarkovModels.jl) [](https://github.com/invenia/BlueStyle) [](https://github.com/JuliaTesting/Aqua.jl) [](https://github.com/aviatesk/JET.jl) [](https://doi.org/10.5281/zenodo.8128331) [](https://doi.org/10.21105/joss.06436) A Julia package for simulation, inference and learning of Hidden Markov Models. ## 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](https://gdalle.github.io/HiddenMarkovModels.jl/stable/) to know what to do next! ## Some background [Hidden Markov Models](https://en.wikipedia.org/wiki/Hidden_Markov_model) (HMMs) are a widely used modeling framework in signal processing, bioinformatics and plenty of other fields. They explain an observation sequence $(Y_t)$ by assuming the existence of a latent Markovian state sequence $(X_t)$ 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_](https://ieeexplore.ieee.org/document/18626), 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. ## Contributing If you spot a bug or want to ask about a new feature, please [open an issue](https://github.com/gdalle/HiddenMarkovModels.jl/issues) 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](https://github.com/invenia/BlueStyle) guidelines. ## Acknowledgements A big thank you to [Maxime Mouchet](https://www.maxmouchet.com/) and [Jacob Schreiber](https://jmschrei.github.io/), the respective lead devs of alternative packages [HMMBase.jl](https://github.com/maxmouchet/HMMBase.jl) and [pomegranate](https://github.com/jmschrei/pomegranate), for their help and advice. Logo by [Clment Mantoux](https://cmantoux.github.io/) based on a portrait of [Andrey Markov](https://en.wikipedia.org/wiki/Andrey_Markov).
Owner
- Name: David Métivier
- Login: dmetivie
- Kind: user
- Location: Montpellier, France
- Company: INRAe, MISTEA
- Website: http://www.cmap.polytechnique.fr/~david.metivier/
- Repositories: 5
- Profile: https://github.com/dmetivie
I am a research scientist with a physics background. Now, I do statistics to tackle environmental, and climate change problems. Julia enthusiast!