Exemplo n.º 1
0
def test_hmm_3():
    A = 20
    S = 160
    n = 4000
    N = 10

    pZ = np.repeat(1.0/S, S)
    pE = util.normalized(np.random.rand(S, A))
    pT = util.normalized(np.random.rand(S, S))

    H = hmm.FixedHMM(
         pZ = pZ,
         pE = pE,
         pT = pT
     )

    X, Z = H.generate(n)
    print 'test_hmm_3'
    print '----------'
    print '    A = {0}'.format(A)
    print '    S = {0}'.format(S)
    print '    n = {0}'.format(n)

    for i in range(N):
        H = hmm.FixedHMM(
             pZ = pZ,
             pE = util.normalized(np.random.rand(S, A)),
             pT = util.normalized(np.random.rand(S, S))
        )
        t1 = time.clock()
        H.forward_backward(X)
        t2 = time.clock()
        print '    {0:2d}/{1:2d} FB: {2:.5f}s'.format(i + 1, N, t2 - t1)
Exemplo n.º 2
0
def test_phmm_1():
    W = 3
    A = 4
    f1 = util.normalized(np.random.rand(W+1, A))
    t1 = np.random.rand(6)
    t1[2:] /= t1[2:].sum()
    H1 = phmm.ProfileHMM(f1, t1)

    X, Z = H1.generate(10000)

    f2 = util.normalized(f1 + np.random.rand(W+1, A))
    t2 = t1.copy()
    t2[:2] = np.random.rand(2)
    t2[2:] = np.random.rand(4)
    t2[2:] /= t2[2:].sum()
    H2 = phmm.ProfileHMM(f2, t2)

    H2.fit_em(X, precision=1e-5, max_iter=1000)

    print H2.f
    print H2.t
    print H1.f
    print H1.t