Algorithms
See common options for the documentation of a, A, L, ...
Baum–Welch
Distributions.fit_mle — Functionfit_mle(hmm, observations; ...) -> AbstractHMMEstimate the HMM parameters using the EM (Baum-Welch) algorithm, with hmm as the initial state.
Keyword Arguments
display::Symbol = :none: when to display convergence logs, can be set to:iteror:final.init::Symbol = :none: if set to:kmeansthe HMM parameters will be initialized using a K-means clustering.maxiter::Integer = 100: maximum number of iterations to perform.tol::Integer = 1e-3: stop the algorithm when the improvement in the log-likelihood is less thantol.
Output
<:AbstractHMM: a copy of the original HMM with the updated parameters.
Forward-Backward
HMMBase.forward — Functionforward(a, A, L; logl) -> (Vector, Float)Compute forward probabilities using samples likelihoods. See Forward-backward algorithm.
Output
Vector{Float64}: forward probabilities.Float64: log-likelihood of the observed sequence.
forward(hmm, observations; logl, robust) -> (Vector, Float)Compute forward probabilities of the observations given the hmm model.
Output
Vector{Float64}: forward probabilities.Float64: log-likelihood of the observed sequence.
Example
using Distributions, HMMBase
hmm = HMM([0.9 0.1; 0.1 0.9], [Normal(0,1), Normal(10,1)])
y = rand(hmm, 1000)
probs, tot = forward(hmm, y)HMMBase.backward — Functionbackward(a, A, L; logl) -> (Vector, Float)Compute backward probabilities using samples likelihoods. See Forward-backward algorithm.
Output
Vector{Float64}: backward probabilities.Float64: log-likelihood of the observed sequence.
backward(hmm, observations; logl, robust) -> (Vector, Float)Compute backward probabilities of the observations given the hmm model.
Output
Vector{Float64}: backward probabilities.Float64: log-likelihood of the observed sequence.
Example
using Distributions, HMMBase
hmm = HMM([0.9 0.1; 0.1 0.9], [Normal(0,1), Normal(10,1)])
y = rand(hmm, 1000)
probs, tot = backward(hmm, y)HMMBase.posteriors — Functionposteriors(α, β) -> VectorCompute posterior probabilities from α and β.
Arguments
α::AbstractVector: forward probabilities.β::AbstractVector: backward probabilities.
posteriors(a, A, L; logl) -> VectorCompute posterior probabilities using samples likelihoods.
posteriors(hmm, observations; logl, robust) -> VectorCompute posterior probabilities using samples likelihoods.
Example
using Distributions, HMMBase
hmm = HMM([0.9 0.1; 0.1 0.9], [Normal(0,1), Normal(10,1)])
y = rand(hmm, 1000)
γ = posteriors(hmm, y)Viterbi
HMMBase.viterbi — Functionviterbi(a, A, L; logl) -> VectorFind the most likely hidden state sequence, see Viterbi algorithm.
viterbi(hmm, observations; logl, robust) -> VectorExample
using Distributions, HMMBase
hmm = HMM([0.9 0.1; 0.1 0.9], [Normal(0,1), Normal(10,1)])
y = rand(hmm, 1000)
zv = viterbi(hmm, y)