要学习PyMC,我正在尝试做一个简单的隐马尔可夫模型,如下所示:
with pymc3.Model() as hmm:
# Transition "matrix"
a_t = np.ones(num_states)
T = [pymc3.Dirichlet('T{0}'.format(i), a = a_t, shape = num_states) for i in xrange(num_states)]
# Emission "matrix"
a_e = np.ones(num_emissions)
E = [pymc3.Dirichlet('E{0}'.format(i), a = a_e, shape = num_emissions) for i in xrange(num_states)]
# State models
p0 = np.ones(num_states) / num_states
# No shape, so each state is a scalar tensor
states = [pymc3.Categorical('s0', p = p0)]
emissions = [pymc3.Categorical('z0',
p = ifelse(eq(states[0], 0), E[0], ifelse(eq(states[0], 1), E[1], E[2])),
observed …Run Code Online (Sandbox Code Playgroud)