def test_forward_backward(): umbrella_prior = [0.5, 0.5] umbrella_transition = [[0.7, 0.3], [0.3, 0.7]] umbrella_sensor = [[0.9, 0.2], [0.1, 0.8]] umbrellaHMM = HiddenMarkovModel(umbrella_transition, umbrella_sensor) umbrella_evidence = [T, T, F, T, T] assert (rounder( forward_backward(umbrellaHMM, umbrella_evidence, umbrella_prior)) == [[0.6469, 0.3531], [0.8673, 0.1327], [0.8204, 0.1796], [0.3075, 0.6925], [0.8204, 0.1796], [0.8673, 0.1327]]) umbrella_evidence = [T, F, T, F, T] assert rounder( forward_backward(umbrellaHMM, umbrella_evidence, umbrella_prior)) == [[0.5871, 0.4129], [0.7177, 0.2823], [0.2324, 0.7676], [0.6072, 0.3928], [0.2324, 0.7676], [0.7177, 0.2823]]
def test_forward_backward(): umbrella_prior = [0.5, 0.5] umbrella_transition = [[0.7, 0.3], [0.3, 0.7]] umbrella_sensor = [[0.9, 0.2], [0.1, 0.8]] umbrellaHMM = HiddenMarkovModel(umbrella_transition, umbrella_sensor) umbrella_evidence = [T, T, F, T, T] assert rounder(forward_backward(umbrellaHMM, umbrella_evidence, umbrella_prior)) == [ [0.6469, 0.3531], [0.8673, 0.1327], [0.8204, 0.1796], [0.3075, 0.6925], [0.8204, 0.1796], [0.8673, 0.1327], ] umbrella_evidence = [T, F, T, F, T] assert rounder(forward_backward(umbrellaHMM, umbrella_evidence, umbrella_prior)) == [ [0.5871, 0.4129], [0.7177, 0.2823], [0.2324, 0.7676], [0.6072, 0.3928], [0.2324, 0.7676], [0.7177, 0.2823], ]
def test_viterbi(): umbrella_transition = [[0.7, 0.3], [0.3, 0.7]] umbrella_sensor = [[0.9, 0.2], [0.1, 0.8]] umbrellaHMM = HiddenMarkovModel(umbrella_transition, umbrella_sensor) umbrella_evidence = [T, T, F, T, T] assert rounder(viterbi(umbrellaHMM, umbrella_evidence)) == [0.8182, 0.5155, 0.1237, 0.0334, 0.0210] umbrella_evidence = [T, F, T, F, T] assert rounder(viterbi(umbrellaHMM, umbrella_evidence)) == [0.8182, 0.1964, 0.053, 0.0154, 0.0042]
def test_fixed_lag_smoothing(): umbrella_evidence = [T, F, T, F, T] e_t = F t = 4 umbrella_transition = [[0.7, 0.3], [0.3, 0.7]] umbrella_sensor = [[0.9, 0.2], [0.1, 0.8]] umbrellaHMM = HiddenMarkovModel(umbrella_transition, umbrella_sensor) d = 2 assert rounder(fixed_lag_smoothing(e_t, umbrellaHMM, d, umbrella_evidence, t)) == [0.1111, 0.8889] d = 5 assert fixed_lag_smoothing(e_t, umbrellaHMM, d, umbrella_evidence, t) is None umbrella_evidence = [T, T, F, T, T] # t = 4 e_t = T d = 1 assert rounder(fixed_lag_smoothing(e_t, umbrellaHMM, d, umbrella_evidence, t)) == [0.9939, 0.0061]