Exemple #1
0
 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