for data in training_datas:
    model.add_data(data,left_censoring=True)
    # model.add_data_parallel(data,left_censoring=True)

##################
#  infer things  #
##################

train_likes = []
test_likes = []

for i in progprint_xrange(50):
    model.resample_model()
    # model.resample_model_parallel()
    train_likes.append(model.log_likelihood())
    # test_likes.append(model.log_likelihood(test_data,left_censoring=True))

print 'training data likelihood when in the model: %g' % model.log_likelihood()
print 'training data likelihood passed in externally: %g' % sum(model.log_likelihood(data,left_censoring=True) for data in training_datas)

plt.figure()
truemodel.plot()
plt.gcf().suptitle('truth')

plt.figure()
model.plot()
plt.gcf().suptitle('inferred')

# plt.figure()
# plt.plot(train_likes,label='training')
        alpha_a_0=1.0,alpha_b_0=0.1,
        gamma_a_0=0.1,gamma_b_0=200.,
        obs_distns=obs_distns,
        dur_distns=dur_distns)

for data in training_datas:
    model.add_data_parallel(data,left_censoring=True)
    # model.add_data(data,left_censoring=True)

##################
#  infer things  #
##################


train_likes = []
for i in progprint_xrange(50):
    model.resample_model_parallel()
    # model.resample_model()
    train_likes.append(model.log_likelihood())

##########
#  plot  #
##########

plt.figure()
plt.plot(train_likes,label='training')
plt.legend()

plt.show()

예제 #3
0
for data in training_datas:
    model.add_data(data, left_censoring=True)
    # model.add_data_parallel(data,left_censoring=True)

##################
#  infer things  #
##################

for i in progprint_xrange(25):
    model.resample_model()

#################
#  check likes  #
#################

computed_directly = model.log_likelihood(test_data, left_censoring=True)

# NOTE: this is like model.predictive_likelihoods(test_data,[1]) but it includes
# the first frame p(y_1) term instead of just starting at p(y_2|y_1)
s = model._states_class(model=model,
                        data=test_data,
                        stateseq=np.zeros(len(test_data)),
                        left_censoring=True)
alphal = s.messages_forwards()
cmaxes = alphal.max(axis=1)
predictions = np.log(
    np.exp(alphal - cmaxes[:, None]).dot(s.trans_matrix)[:-1]) + cmaxes[:-1,
                                                                        None]
predictions = np.vstack((np.log(s.pi_0), predictions))
prediction_likes = np.logaddexp.reduce(
    predictions + s.aBl, axis=1) - np.concatenate(
for data in training_datas:
    model.add_data(data, left_censoring=True)
    # model.add_data_parallel(data,left_censoring=True)

##################
#  infer things  #
##################

train_likes = []
test_likes = []

for i in progprint_xrange(50):
    model.resample_model()
    # model.resample_model_parallel()
    train_likes.append(model.log_likelihood())
    # test_likes.append(model.log_likelihood(test_data,left_censoring=True))

print 'training data likelihood when in the model: %g' % model.log_likelihood()
print 'training data likelihood passed in externally: %g' % sum(
    model.log_likelihood(data, left_censoring=True) for data in training_datas)

plt.figure()
truemodel.plot()
plt.gcf().suptitle('truth')

plt.figure()
model.plot()
plt.gcf().suptitle('inferred')

# plt.figure()
    model.add_data(data,left_censoring=True)
    # model.add_data_parallel(data,left_censoring=True)

##################
#  infer things  #
##################

for i in progprint_xrange(25):
    model.resample_model()


#################
#  check likes  #
#################

computed_directly = model.log_likelihood(test_data,left_censoring=True)

# NOTE: this is like model.predictive_likelihoods(test_data,[1]) but it includes
# the first frame p(y_1) term instead of just starting at p(y_2|y_1)
s = model._states_class(model=model,data=test_data,stateseq=np.zeros(len(test_data)),left_censoring=True)
alphal = s.messages_forwards()
cmaxes = alphal.max(axis=1)
predictions = np.log(np.exp(alphal - cmaxes[:,None]).dot(s.trans_matrix)[:-1]) + cmaxes[:-1,None]
predictions = np.vstack((np.log(s.pi_0),predictions))
prediction_likes = np.logaddexp.reduce(predictions + s.aBl,axis=1) - np.concatenate(((0.,),np.logaddexp.reduce(alphal,axis=1)[:-1]))
computed_predictively = prediction_likes.sum()

print 'direct computation (backwards messages): %f' % computed_directly
print 'predictive computation (forwards HMM messages): %f' % computed_predictively

예제 #6
0
        dur_distns=dur_distns)

for data in training_datas:
    model.add_data(data,left_censoring=True)

##################
#  infer things  #
##################

train_likes = []
test_likes = []

for i in progprint_xrange(5):
# for i in progprint_xrange(50):
    model.resample_model()
    train_likes.append(model.log_likelihood())
    test_likes.append(model.log_likelihood(test_data,left_censoring=True))

model.truncate_num_states(10,destructive=True,mode='random')
model.Viterbi_EM_fit()

# print 'training data likelihood when in the model: %g' % model.log_likelihood()
# print 'training data likelihood passed in externally: %g' % sum(model.log_likelihood(data,left_censoring=True) for data in training_datas)

# plt.figure()
# truemodel.plot()
# plt.gcf().suptitle('truth')

# plt.figure()
# model.plot()
# plt.gcf().suptitle('inferred')
예제 #7
0
                                    dur_distns=dur_distns)

for data in training_datas:
    model.add_data(data, left_censoring=True)

##################
#  infer things  #
##################

train_likes = []
test_likes = []

for i in progprint_xrange(5):
    # for i in progprint_xrange(50):
    model.resample_model()
    train_likes.append(model.log_likelihood())
    test_likes.append(model.log_likelihood(test_data, left_censoring=True))

model.truncate_num_states(10, destructive=True, mode='random')
model.Viterbi_EM_fit()

# print 'training data likelihood when in the model: %g' % model.log_likelihood()
# print 'training data likelihood passed in externally: %g' % sum(model.log_likelihood(data,left_censoring=True) for data in training_datas)

# plt.figure()
# truemodel.plot()
# plt.gcf().suptitle('truth')

# plt.figure()
# model.plot()
# plt.gcf().suptitle('inferred')