예제 #1
0
파일: app.py 프로젝트: savf/gemjob
    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 {}
예제 #2
0
파일: app.py 프로젝트: savf/gemjob
    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 {}
예제 #3
0
파일: app.py 프로젝트: savf/gemjob
    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 {}
예제 #4
0
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]
예제 #5
0
파일: app.py 프로젝트: savf/gemjob
    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 {}