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