Ejemplo n.º 1
0
def main():
    args = get_step_args()
    setup_logging(model_version_id=args.model_version_id,
                  step_id=STEP_IDS['InputData'])

    logger.info("Initiating the knockout generation.")
    t = ModelTask(model_version_id=args.model_version_id,
                  db_connection=args.db_connection,
                  old_covariates_mvid=args.old_covariates_mvid,
                  debug_mode=args.debug_mode,
                  cores=args.cores,
                  step_id=STEP_IDS['InputData'],
                  make_inputs=False,
                  make_ko=False)
    logger.info("Finished with input creation.")
    t.alerts.alert("Done creating inputs.")

    logger.info("Updating job metadata parameters.")
    with open(t.model_paths.JOB_METADATA, 'r') as json_file:
        logger.info("Reading inputs json.")
        inputs_info = json.load(json_file)
        logger.info(f"{inputs_info}")

    inputs_info.update(inspect_all_inputs(t.model_metadata))
    with open(t.model_paths.JOB_METADATA, 'w') as outfile:
        logger.info("Writing inputs json.")
        logger.info(f"{inputs_info}")
        json.dump(inputs_info, outfile)
Ejemplo n.º 2
0
def main():
    args = get_step_args()
    setup_logging(model_version_id=args.model_version_id,
                  step_id=STEP_IDS['OptimalPSI'])

    logger.info("Initiating Optimal Psi")
    t = OptimalPSI(
        model_version_id=args.model_version_id,
        db_connection=args.db_connection,
        debug_mode=args.debug_mode,
        old_covariates_mvid=args.old_covariates_mvid,
        cores=args.cores,
        cutoff=100
    )
    t.alerts.alert("Beginning the optimal psi process")
    t.database_wipe()
    t.get_best_psi()
    t.calculate_weights()
    t.make_temp_ensemble_preds()
    t.calculate_in_sample_rmse()
    t.calculate_in_sample_trend()
    t.determine_submodel_ids()
    t.delete_predictions()
    t.return_submodel_labels()
    t.submodel_pv()
    t.write_submodel_covariates()
    t.save_outputs()
    logger.info(f"Finished finding optimal psi: {t.pickled_outputs['model_pv']['best_psi']}")
    t.alerts.alert("Finished with optimal psi")
Ejemplo n.º 3
0
def main():
    args = get_step_args()
    setup_logging(model_version_id=args.model_version_id,
                  step_id=STEP_IDS['ApplySpacetimeSmoothing'])

    logger.info("Initiating spacetime smoothing.")
    t = ApplySpacetimeSmoothing(model_version_id=args.model_version_id,
                                db_connection=args.db_connection,
                                debug_mode=args.debug_mode,
                                old_covariates_mvid=args.old_covariates_mvid,
                                cores=args.cores)
    t.alerts.alert("Initiating spacetime smoothing")
    t.apply_spacetime_smoothing()
    t.save_outputs()
    t.alerts.alert("Done with spacetime smoothing")
Ejemplo n.º 4
0
def main():
    args = get_step_args()
    setup_logging(model_version_id=args.model_version_id,
                  step_id=STEP_IDS['GPRDraws'])
    ne.set_num_threads(1)
    logger.info("Initiating GPR draws.")
    t = GPRDraws(model_version_id=args.model_version_id,
                 db_connection=args.db_connection,
                 debug_mode=args.debug_mode,
                 old_covariates_mvid=args.old_covariates_mvid,
                 cores=args.cores)
    t.alerts.alert("Creating GPR draws.")
    t.make_draws()
    t.save_outputs()
    t.alerts.alert("Done creating GPR draws.")
Ejemplo n.º 5
0
def main():
    args = get_step_args()
    setup_logging(model_version_id=args.model_version_id,
                  step_id=STEP_IDS['ApplyGPSmoothing'])

    logger.info("Initiating GPR smoothing.")
    ne.set_num_threads(1)
    t = ApplyGPSmoothing(model_version_id=args.model_version_id,
                         db_connection=args.db_connection,
                         debug_mode=args.debug_mode,
                         old_covariates_mvid=args.old_covariates_mvid,
                         cores=args.cores)
    t.alerts.alert("Applying GP Smoothing")
    t.apply_gp_smoothing()
    t.save_outputs()
    t.alerts.alert("Done with GP Smoothing")
Ejemplo n.º 6
0
def main():
    args = get_step_args()
    setup_logging(model_version_id=args.model_version_id,
                  step_id=str(STEP_IDS['CovariateSelection']) +
                  f"_{args.outcome}")

    logger.info("Initiating Covariate Selection")
    t = CovariateSelection(model_version_id=args.model_version_id,
                           db_connection=args.db_connection,
                           debug_mode=args.debug_mode,
                           old_covariates_mvid=args.old_covariates_mvid,
                           cores=args.cores,
                           outcome=args.outcome)
    t.launch_covariate_selection()
    logger.info(f"Finished with Covariate Selection for {args.outcome}")
    t.alerts.alert(f"Finished with covariate selection for {args.outcome}")
Ejemplo n.º 7
0
def main():
    args = get_step_args()
    setup_logging(model_version_id=args.model_version_id,
                  step_id=STEP_IDS['LinearModelBuilds'])

    logger.info("Initiating linear model builds")
    t = LinearModelBuilds(model_version_id=args.model_version_id,
                          db_connection=args.db_connection,
                          debug_mode=args.debug_mode,
                          old_covariates_mvid=args.old_covariates_mvid,
                          cores=args.cores)
    t.launch_linear_model_builds()
    t.save_response_list()
    t.save_outputs()
    logger.info("Finished with Linear Model Builds")
    t.alerts.alert("Finished with linear model builds")
Ejemplo n.º 8
0
def main():
    args = get_step_args()
    setup_logging(model_version_id=args.model_version_id,
                  step_id=STEP_IDS['Diagnostics'])

    logger.info("Initiating model diagnostics.")
    t = Diagnostics(model_version_id=args.model_version_id,
                    db_connection=args.db_connection,
                    debug_mode=args.debug_mode,
                    old_covariates_mvid=args.old_covariates_mvid,
                    cores=args.cores)
    t.alerts.alert("Making diagnostics for modeler")
    t.get_table_diagnostics()
    t.save_tables()
    t.get_plot_diagnostics()
    t.alerts.alert("Done making diagnostics for modeler")
Ejemplo n.º 9
0
def main():
    args = get_step_args()
    setup_logging(model_version_id=args.model_version_id,
                  step_id=STEP_IDS['GenerateKnockouts'])

    logger.info("Initiating the knockout generation.")
    t = ModelTask(model_version_id=args.model_version_id,
                  db_connection=args.db_connection,
                  old_covariates_mvid=args.old_covariates_mvid,
                  debug_mode=args.debug_mode,
                  cores=args.cores,
                  step_id=STEP_IDS['GenerateKnockouts'],
                  make_inputs=False,
                  make_ko=True)
    t.alerts.alert("Done creating knockouts.")
    logger.info("Finished with knockout creation.")
Ejemplo n.º 10
0
def main():
    args = get_step_args()
    setup_logging(model_version_id=args.model_version_id,
                  step_id=STEP_IDS['WriteResults'])

    logger.info("Initiating writing results.")
    t = WriteResults(model_version_id=args.model_version_id,
                     db_connection=args.db_connection,
                     debug_mode=args.debug_mode,
                     old_covariates_mvid=args.old_covariates_mvid,
                     cores=args.cores)
    t.database_wipe()
    t.read_draws()
    t.aggregate_draws()
    t.get_full_envelope()
    t.write_submodel_means()
    t.write_model_mean()
    t.create_global_table()
Ejemplo n.º 11
0
def main():
    args = get_step_args()
    setup_logging(model_version_id=args.model_version_id,
                  step_id=STEP_IDS['Email'])

    logger.info("Initiating modeler email.")
    t = Email(
        model_version_id=args.model_version_id,
        db_connection=args.db_connection,
        debug_mode=args.debug_mode,
        old_covariates_mvid=args.old_covariates_mvid,
        cores=args.cores
    )
    t.alerts.alert("Creating the email to send to modelers")
    t.create_email_body()
    t.create_email_text()
    t.send_email()
    t.alerts.alert("Check your email! :)")
Ejemplo n.º 12
0
def main():
    args = get_step_args()
    setup_logging(model_version_id=args.model_version_id,
                  step_id=STEP_IDS['ReadSpacetimeModels'])

    logger.info("Initiating reading spacetime models.")
    t = ReadModels(model_version_id=args.model_version_id,
                   db_connection=args.db_connection,
                   debug_mode=args.debug_mode,
                   old_covariates_mvid=args.old_covariates_mvid,
                   cores=args.cores,
                   step_id=STEP_IDS['ReadSpacetimeModels'])
    t.alerts.alert("Reading spacetime models")
    t.read_models(input_json_path=t.model_paths.JSON_FILES['spacetime'],
                  output_object_name='st_models_linear')
    t.pickled_outputs['st_models_linear'].delete_mixed_model_parameters()
    t.save_outputs()
    t.alerts.alert("Done reading spacetime models")
Ejemplo n.º 13
0
def main():
    args = get_step_args()
    setup_logging(model_version_id=args.model_version_id,
                  step_id=STEP_IDS['LinearPV'])

    logger.info("Initiating Linear Model PV.")
    t = PV(model_version_id=args.model_version_id,
           db_connection=args.db_connection,
           debug_mode=args.debug_mode,
           old_covariates_mvid=args.old_covariates_mvid,
           cores=args.cores,
           step_id=STEP_IDS['LinearPV'])
    t.alerts.alert(
        "Calculating submodel predictive validity for linear models.")
    t.calculate_submodel_pv(input_object_name='linear_models_linear',
                            output_object_prefix='linear_models')
    t.save_outputs()
    t.alerts.alert(
        "Done calculating submodel predictive validity for linear models.")
Ejemplo n.º 14
0
def main():
    args = get_step_args()
    setup_logging(model_version_id=args.model_version_id,
                  step_id=STEP_IDS['EnsemblePredictions'])

    ne.set_num_threads(1)
    logger.info("Initiating calculate coverage.")
    t = EnsemblePredictions(
        model_version_id=args.model_version_id,
        db_connection=args.db_connection,
        debug_mode=args.debug_mode,
        old_covariates_mvid=args.old_covariates_mvid,
        cores=args.cores
    )
    t.alerts.alert("Ensemble-ing all the predictions!")
    t.calculate_oos_coverage()
    t.calculate_is_coverage()
    t.write_pv()
    t.add_draws_to_df()
    t.write_draws()
    t.save_outputs()
    t.alerts.alert("Done with ensemble-ing the predictions.")