Exemplo n.º 1
0
def test_3():
    transmat = np.array([[0.2, 0.3, 0.5], [0.4, 0.4, 0.2], [0.8, 0.2, 0.0]])
    means = np.array([[0.0], [2.0], [4.0]])
    kappas = np.array([[8.0], [8.0], [6.0]])
    X = [create_timeseries(means, kappas, transmat) for i in range(20)]
    
    # For each value of various options, create a 3 state HMM and see if it is correct.
    
    for reversible_type in ('mle', 'transpose'):
        model = VonMisesHMM(n_states=3, reversible_type=reversible_type, thresh=1e-4, n_iter=30)
        model.fit(X)
        validate_timeseries(means, kappas, transmat, model, 0.1, 0.5, 0.1)
        assert abs(model.fit_logprob_[-1]-model.score(X)) < 0.5
Exemplo n.º 2
0
def test_2_state():
    transmat = np.array([[0.7, 0.3], [0.4, 0.6]])
    means = np.array([[0.0], [2.0]])
    kappas = np.array([[4.0], [8.0]])
    X = [create_timeseries(means, kappas, transmat) for i in range(10)]

    # For each value of various options,
    # create a 2 state HMM and see if it is correct.

    for reversible_type in ('mle', 'transpose'):
        model = VonMisesHMM(n_states=2, reversible_type=reversible_type,
                            thresh=1e-4, n_iter=30)
        model.fit(X)
        validate_timeseries(means, kappas, transmat, model, 0.1, 0.5, 0.05)
        assert abs(model.fit_logprob_[-1] - model.score(X)) < 0.5