示例#1
0
def short_state_trace():
    fbhmm = ForwardBackwardHMM(pxk_xkm1, pyk_xk, px0, y_obs_long)
    probs, alphas, betas = fbhmm.forward_backward()
    probs_eln, logalphas, logbetas = fbhmm.forward_backward_eln()
    state_trace = fbhmm.max_likelihood_state_estimate(probs)
    eln_state_trace = fbhmm.max_likelihood_state_estimate(probs_eln)
    K = [i for i in range(0, len(y_obs_long) + 1)]

    plt.plot(K,
             state_trace,
             marker='+',
             markersize='12',
             linestyle='-.',
             color='b',
             linewidth=2,
             drawstyle='steps-mid',
             label='Regular FB')

    plt.plot(K,
             eln_state_trace,
             marker='x',
             markersize='12',
             linestyle=':',
             color='r',
             linewidth=2,
             drawstyle='steps-mid',
             label='ELN FB')
    yint = range(1, 5)
    plt.yticks(yint)
    plt.legend(handlelength=4, loc='upper right')
    plt.title("State transition chart for Long Dataset")
    plt.ylabel("State")
    plt.xlabel("Xk")
    plt.show()
示例#2
0
def posterior_chart():
    fbhmm = ForwardBackwardHMM(pxk_xkm1, pyk_xk, px0, y_obs_short)
    probs, alphas, betas = fbhmm.forward_backward()
    print(
        tabulate(probs,
                 headers=[
                     "K1", "K2", "K3", "K4", "K5", "K6", "K7", "K8", "K9",
                     "K11", "K11", "K12", "K13", "K14", "K15"
                 ],
                 tablefmt="latex"))
示例#3
0
def posterior_chart():
    fbhmm = ForwardBackwardHMM(pxk_xkm1, pyk_xk, px0, y_obs_long)
    probs, alphas, betas = fbhmm.forward_backward()
    probs = np.concatenate((probs.transpose()[:5], probs.transpose()[-5:]),
                           axis=0).transpose()
    print(
        tabulate(probs,
                 headers=[
                     "X1", "X2", "X3", "X4", "X5", "X42", "X43", "X44", "X45",
                     "X46"
                 ],
                 tablefmt="latex"))
示例#4
0
def data_likelihood():
    fbhmm = ForwardBackwardHMM(pxk_xkm1, pyk_xk, px0, y_obs_long)
    probs, alphas, betas = fbhmm.forward_backward()
    print(eln(sum(alphas[:, len(y_obs_long)])))