def post(self): local_variable = copy.deepcopy(GLOBAL_VARIABLE) if "model" in local_variable: json_data = request.get_json(force=True) data_frame = prepare_single_job(json_data) unnormalized_data = data_frame.copy() normalized_data =\ prepare_single_job_jobtype_model(unnormalized_data, TARGET_NAME, local_variable['columns'], local_variable['min'], local_variable['max'], local_variable['vectorizers']) # No min,max needed for denormalization, since target # is categorical (Hourly/Fixed) prediction = predict(normalized_data, TARGET_NAME, local_variable['model']) app.logger.info("{} Prediction: {}".format(TARGET_NAME, prediction)) return { TARGET_NAME: { 'prediction': prediction, 'stats': local_variable['feature_importances'] } } return {}
def post(self): local_variable = copy.deepcopy(GLOBAL_VARIABLE) if local_variable.has_key("clusters"): json_data = request.get_json(force=True) data_frame = prepare_single_job(json_data) unnormalized_data = data_frame.copy() normalized_data, target_columns = prepare_single_job_clustering( data_frame, local_variable["centroids"].columns, local_variable["min"], local_variable["max"], vectorizers=local_variable["vectorizers"], weighting=True) unnormalized_data = predict(unnormalized_data, normalized_data, local_variable["clusters"], local_variable["centroids"], target_columns) predictions = unnormalized_data.to_dict('records') print "\n\n### Predictions:" print predictions return predictions[0] else: return {}
def post(self): local_variable = copy.deepcopy(GLOBAL_VARIABLE) if "model" in local_variable: json_data = request.get_json(force=True) data_frame = prepare_single_job(json_data) unnormalized_data = data_frame.copy() if 'job_type' in unnormalized_data and \ unnormalized_data['job_type'][0] != 'Hourly': normalized_data =\ prepare_single_job_budget_model(unnormalized_data, TARGET_NAME, local_variable['columns'], local_variable['min'], local_variable['max'], local_variable['vectorizers']) prediction = predict(normalized_data, TARGET_NAME, local_variable['model'], local_variable['min'], local_variable['max']) app.logger.info("{} Prediction: {}".format( TARGET_NAME, prediction)) return { TARGET_NAME: { 'prediction': prediction, 'stats': local_variable['feature_importances'] } } return {}
def get_knn_prediction(json_data, local_variable, target="text"): if target == "text": get_example_text = True else: get_example_text = False data_frame = prepare_single_job(json_data) unnormalized_data = data_frame.copy() normalized_data, target_columns = prepare_single_job_clustering( data_frame, local_variable["data_frame_normalized"].columns, local_variable["min"], local_variable["max"], vectorizers=local_variable["vectorizers"], weighting=True, do_log_transform=True) if target == "budget": target_columns.append(target) # Reweighting harms budget! Benefits subcategory however and shows more similar example snippet and title predictions = predict_knn(unnormalized_data, local_variable["data_frame_original"], normalized_data, local_variable["data_frame_normalized"], k=K, target_columns=target_columns, do_reweighting=get_example_text, get_example_text=get_example_text) predictions = predictions.to_dict('records') print "\n\n### Predictions:" print predictions return predictions[0]
def post(self): local_variable = copy.deepcopy(GLOBAL_VARIABLE) if "model" in local_variable: try: json_data = request.get_json(force=True) data_frame = prepare_single_job(json_data) unnormalized_data = data_frame.copy() normalized_data =\ prepare_single_job_feedback_model(unnormalized_data, TARGET_NAME, local_variable['columns'], local_variable['min'], local_variable['max'], local_variable['vectorizers']) prediction = predict(normalized_data, TARGET_NAME, local_variable['model'], local_variable['min'], local_variable['max']) app.logger.info("{} Prediction: {}".format( TARGET_NAME, prediction)) return { TARGET_NAME: { 'prediction': prediction, 'stats': local_variable['feature_importances'] } } except Exception as e: app.logger.error(e) return {} return {}