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)
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