Esempio n. 1
0
def set_model_name(job: Job) -> None:
    if job.create_models:
        if job.predictive_model.model_path != '':
            job.predictive_model = duplicate_orm_row(PredictiveModel.objects.filter(pk=job.predictive_model.pk)[0])
            job.predictive_model.save()
            job.save()

        if job.clustering.clustering_method != ClusteringMethods.NO_CLUSTER.value:
            job.clustering.model_path = 'cache/model_cache/job_{}-split_{}-clusterer-{}-v0.sav'.format(
                job.id,
                job.split.id,
                job.type)
            job.clustering.save()

        if job.type == JobTypes.UPDATE.value:
            job.type = JobTypes.PREDICTION.value #TODO: Y am I doing this?
            predictive_model_filename = 'cache/model_cache/job_{}-split_{}-predictive_model-{}-v{}.sav'.format(
                job.id,
                job.split.id,
                job.type,
                str(time.time()))
        else:
            predictive_model_filename = 'cache/model_cache/job_{}-split_{}-predictive_model-{}-v0.sav'.format(
                job.id,
                job.split.id,
                job.type)
        job.predictive_model.model_path = predictive_model_filename
        job.predictive_model.save()
        job.save()
Esempio n. 2
0
def set_model_name(job: Job) -> None:
    if job.create_models:
        if job.predictive_model.model_path != '':
            # job.predictive_model = duplicate_orm_row(PredictiveModel.objects.filter(pk=job.predictive_model.pk)[0])  #todo: replace with simple CREATE
            job.predictive_model = PredictiveModel.init(
                job.predictive_model.get_full_dict(
                )  #todo: doublecheck me, are you sure get_full_dict is returning everything needed?
            )  #todo: futurebug if object changes
            job.predictive_model.save()
            job.save()

        if job.clustering.clustering_method != ClusteringMethods.NO_CLUSTER.value:
            job.clustering.model_path = 'cache/model_cache/job_{}-split_{}-clusterer-{}-v0.sav'.format(
                job.id, job.split.id, job.type)
            job.clustering.save()

        if job.type == JobTypes.UPDATE.value:
            job.type = JobTypes.PREDICTION.value  #TODO: Y am I doing this?
            predictive_model_filename = 'cache/model_cache/job_{}-split_{}-predictive_model-{}-v{}.sav'.format(
                job.id, job.split.id, job.type, str(time.time()))
        else:
            predictive_model_filename = 'cache/model_cache/job_{}-split_{}-predictive_model-{}-v0.sav'.format(
                job.id, job.split.id, job.type)
        job.predictive_model.model_path = predictive_model_filename
        job.predictive_model.save()
        job.save()
Esempio n. 3
0
def save_models(models: dict, job: Job):
    logger.info("\tStart saving models of JOB {}".format(job.id))
    if job.clustering.clustering_method != ClusteringMethods.NO_CLUSTER.value:
        clusterer_filename = 'cache/model_cache/job_{}-split_{}-clusterer-{}-v0.sav'.format(
            job.id, job.split.id, job.type)
        joblib.dump(models[ModelType.CLUSTERER.value], clusterer_filename)
        job.clustering.model_path = clusterer_filename
        job.clustering.save()
        job.save()

    if job.type == JobTypes.UPDATE.value:
        job.type = JobTypes.PREDICTION.value  #TODO: Y am I doing this?
        predictive_model_filename = 'cache/model_cache/job_{}-split_{}-predictive_model-{}-v{}.sav'.format(
            job.id, job.split.id, job.type, str(time.time()))
    else:
        predictive_model_filename = 'cache/model_cache/job_{}-split_{}-predictive_model-{}-v0.sav'.format(
            job.id, job.split.id, job.type)
    joblib.dump(models[job.predictive_model.predictive_model],
                predictive_model_filename)
    job.predictive_model.model_path = predictive_model_filename
    job.predictive_model.save()
    job.save()