def test_class_decision_tree(self): job = self.get_classification_job( PredictiveModels.CLASSIFICATION.value, ClassificationMethods.DECISION_TREE.value) results, _, _ = calculate_hyperopt(job) self.assertIsNotNone(results)
def test_regression_xgboost(self): job = self.get_job(PredictiveModels.REGRESSION.value, RegressionMethods.XGBOOST.value, HyperOptLosses.RMSE.value) results, _, _ = calculate_hyperopt(job) self.assertIsNotNone(results)
def test_class_xgboost(self): job = self.get_classification_job( PredictiveModels.CLASSIFICATION.value, ClassificationMethods.XGBOOST.value) results, _, _ = calculate_hyperopt(job) self.assertIsNotNone(results)
def prediction_task(job_id, do_publish_result=True): logger.info("Start prediction task ID {}".format(job_id)) job = Job.objects.get(id=job_id) try: if (job.status == JobStatuses.CREATED.value and job.type != JobTypes.UPDATE.value) or \ (job.status == JobStatuses.CREATED.value and job.type == JobTypes.UPDATE.value and job.incremental_train.status == JobStatuses.COMPLETED.value): job.status = JobStatuses.RUNNING.value job.save() job_start_time = time.time() if job.hyperparameter_optimizer is not None and \ job.hyperparameter_optimizer.optimization_method != HyperparameterOptimizationMethods.NONE.value: result, _, model_split = calculate_hyperopt(job) else: result, model_split = calculate(job) job_elapsed_time = time.time() - job_start_time logger.info('\tJob took: {} in HH:MM:ss'.format( time.strftime("%H:%M:%S", time.gmtime(job_elapsed_time)))) if job.create_models: save_models(model_split, job) job.result = result # Evaluation.init( # job.predictive_model.predictive_model, # results # ) job.status = JobStatuses.COMPLETED.value elif job.status in [ JobStatuses.COMPLETED.value, JobStatuses.ERROR.value, JobStatuses.RUNNING.value ]: django_rq.enqueue(prediction_task, job.id) except Exception as e: logger.error(e) job.status = JobStatuses.ERROR.value job.error = str(e.__repr__()) raise e finally: job.save() if do_publish_result: publish(job)
def hyperopt_task(job): # job_dict = job.to_dict() results, config, model_split = calculate_hyperopt(job) # method_conf_name = "{}.{}".format(job_dict['type'], job_dict['method']) # job.config[method_conf_name] = config return results, model_split
def test_class_randomForest(self): job = self.get_job(PredictiveModels.CLASSIFICATION.value, ClassificationMethods.RANDOM_FOREST.value) results, _, _ = calculate_hyperopt(job) self.assertIsNotNone(results)
def calculate_helper_hyperopt(job): start_time = time.time() calculate_hyperopt(job) print('Total for %s %s seconds' % (job['method'], time.time() - start_time))
def setUp(self): self.job = self.get_regression_job(PredictiveModels.REGRESSION.value, RegressionMethods.XGBOOST.value) _, _, _ = calculate_hyperopt(self.job)
def setUp(self): self.job = self.get_classification_job( PredictiveModels.CLASSIFICATION.value, ClassificationMethods.PERCEPTRON.value) _, _, _ = calculate_hyperopt(self.job)