import numpy as np import pickle import pandas as pd from sklearn.preprocessing import LabelEncoder data = pd.read_csv("funding/follow_on_final.csv") train = data train = train.drop(["Organization Name","Equity Only Funding", "Announced Date"], axis = 1 ) le=LabelEncoder() cols = train.select_dtypes(include=['object']).columns.tolist() cat_labels = {} for col in cols: train[col] = le.fit_transform(train[col]) cat_labels[col] = list(le.classes_) def str_to_label(col, val): if col in ["Money Raised" , "Total Funding", "Number of Founders"]: return float(val) return cat_labels[col].index(val) + 1 model = pickle.load(open('funding/classifier_model.pkl', 'rb')) def make_predictions(inputs): out = {} in_data = [] for key in inputs: in_data.append(str_to_label(key, inputs[key])) input_data = np.array(in_data).reshape(-1, len(in_data)) pred = model.predict_proba(input_data).max() if pred > 0.5: out["Prediction"] = "Funded" out["confidence"] = round(pred * 100) else: out["Prediction"] = "Not Funded" out["confidence"] = round(pred * 100) return out