Module hmm::models
[−]
[src]
Hidden Markov Model
Example
Lets say that we have 2 coins: * Fair which generates H (Head) and T (Tails) with probability of 1/2 * Biased - with probabilities H: 1/4, T: 3/4
We also know that after each toss we can switch coin with the probability of * Use the same coin: 3/4 * Switch coin: 1/4
First time we select coin with probability of 1/2
Question: If we now get observation of H H T T T which coins were used during each toss?
Lest build HMM model for this example and check the answer:
let initials: Vec<f64> = vec![0.5, 0.5]; let st = vec![0.75, 0.25, 0.25, 0.75]; let obs = vec![0.5, 0.5, 0.25, 0.75]; let hmm = HiddenMarkov::from_vec(initials, st, obs).unwrap(); hmm.map_estimate(vec![0, 0, 1, 1, 1]) == vec![0, 0, 1, 1, 1]
Structs
HiddenMarkov |
Specialized structure for Hidden Markov Model of order 1 The states are identified by ids taken from natural numbers. |