def predict(self, times, predict_space, predict_group='all'): loose_beta_predictions = self.loose_beta_model.predict( t=times, group_name=predict_group, prediction_functional_form=predict_space) tight_beta_predictions = self.tight_beta_model.predict( t=times, group_name=predict_group, prediction_functional_form=predict_space) loose_p_predictions = self.loose_p_model.predict( t=times, group_name=predict_group, prediction_functional_form=predict_space) tight_p_predictions = self.tight_p_model.predict( t=times, group_name=predict_group, prediction_functional_form=predict_space) beta_predictions = convex_combination(t=times, pred1=tight_beta_predictions, pred2=loose_beta_predictions, pred_fun=predict_space, start_day=self.blend_start_t, end_day=self.blend_end_t) p_predictions = convex_combination(t=times, pred1=tight_p_predictions, pred2=loose_p_predictions, pred_fun=predict_space, start_day=self.blend_start_t, end_day=self.blend_end_t) averaged_predictions = model_average(pred1=beta_predictions, pred2=p_predictions, w1=0.5, w2=0.5, pred_fun=predict_space) return averaged_predictions
def predict(self, times, predict_space, predict_group): beta_predictions = None p_predictions = None if self.beta_weight > 0: loose_beta_predictions = self.loose_beta_model.predict( t=times, group_name=predict_group, prediction_functional_form=predict_space) tight_beta_predictions = self.tight_beta_model.predict( t=times, group_name=predict_group, prediction_functional_form=predict_space) beta_predictions = convex_combination(t=times, pred1=tight_beta_predictions, pred2=loose_beta_predictions, pred_fun=predict_space, start_day=self.blend_start_t, end_day=self.blend_end_t) if self.p_weight > 0: loose_p_predictions = self.loose_p_model.predict( t=times, group_name=predict_group, prediction_functional_form=predict_space) tight_p_predictions = self.tight_p_model.predict( t=times, group_name=predict_group, prediction_functional_form=predict_space) p_predictions = convex_combination(t=times, pred1=tight_p_predictions, pred2=loose_p_predictions, pred_fun=predict_space, start_day=self.blend_start_t, end_day=self.blend_end_t) if (self.beta_weight > 0) & (self.p_weight > 0): averaged_predictions = model_average(pred1=beta_predictions, pred2=p_predictions, w1=self.beta_weight, w2=self.p_weight, pred_fun=predict_space) elif (self.beta_weight > 0) & (self.p_weight == 0): averaged_predictions = beta_predictions elif (self.beta_weight == 0) & (self.p_weight > 0): averaged_predictions = p_predictions else: raise RuntimeError return averaged_predictions