def get_hmm():
    sample = random.randint(0,80)
    means = np.array([ M.trace('mean_pred{}'.format(i), chain=None)[sample]
        for i in range(n_states)])
    covars = np.array([ M.trace('var_pred{}'.format(i), chain=None)[sample]
        for i in range(n_states)])
    trans = np.array([ M.trace('trans_pred{}'.format(i), chain=None)[sample]
        for i in range(n_states)])
    trans = np.concatenate([trans,(np.ones(3) - trans.sum(axis=1))[:,np.newaxis]],axis=1)
    cov = utils.trace_series_to_numpy_array(pd.Series(covars))
    hmm = fhmm.init_HMM(trans[0],trans,means[:,np.newaxis],covars[:,np.newaxis,np.newaxis])
    return hmm
Exemplo n.º 2
0
def get_model_error_from_trace0(test_instances,model,plot=False):
    error=[]
    for obs_house in test_instances:
        obs_power=utils.trace_series_to_numpy_array(obs_house.traces[0].series)
        est_states=model.predict(obs_power)
        est_power=[]
        for val in est_states:
		est_power.append(float(np.random.normal(model._means_[val],model._covars_[val],1)[0]))
        if(plot):
            plt.figure()
            plt.plot(obs_power,'k')
            plt.plot(est_power,'b',alpha=.5)
        error.append(metric.sum_error(obs_power,np.array(est_power)))
    return np.mean(error)
Exemplo n.º 3
0
def get_model_error_from_trace0(test_instances, model, plot=False):
    error = []
    for obs_house in test_instances:
        obs_power = utils.trace_series_to_numpy_array(
            obs_house.traces[0].series)
        est_states = model.predict(obs_power)
        est_power = []
        for val in est_states:
            est_power.append(
                float(
                    np.random.normal(model._means_[val], model._covars_[val],
                                     1)[0]))
        if (plot):
            plt.figure()
            plt.plot(obs_power, 'k')
            plt.plot(est_power, 'b', alpha=.5)
        error.append(metric.sum_error(obs_power, np.array(est_power)))
    return np.mean(error)