|
from flask import Flask, request, jsonify |
|
import numpy as np |
|
import pandas as pd |
|
from sklearn.model_selection import train_test_split |
|
from sklearn.linear_model import LogisticRegression |
|
from sklearn.neighbors import KNeighborsClassifier |
|
from sklearn import svm |
|
from sklearn.tree import DecisionTreeClassifier |
|
from sklearn.ensemble import RandomForestClassifier |
|
from sklearn.ensemble import GradientBoostingClassifier |
|
from xgboost import XGBClassifier |
|
from sklearn.metrics import accuracy_score |
|
import joblib |
|
import pickle |
|
|
|
app = Flask(__name__) |
|
|
|
@app.route('/predict', methods=['POST']) |
|
def predict(): |
|
data = request.get_json() |
|
|
|
|
|
with open('rf_hacathon_fullstk.pkl', 'rb') as f1: |
|
rf_fullstk = pickle.load(f1) |
|
with open('rf_hacathon_prodengg.pkl', 'rb') as f2: |
|
rf_prodengg = pickle.load(f2) |
|
with open('rf_hacathon_mkt.pkl', 'rb') as f3: |
|
rf_mkt = pickle.load(f3) |
|
|
|
|
|
new_data_fullstk = pd.DataFrame({ |
|
'degree_p': data['degree_p'], |
|
'internship': data['internship'], |
|
'DSA': data['DSA'], |
|
'java': data['java'], |
|
}, index=[0]) |
|
|
|
new_data_prodengg = pd.DataFrame({ |
|
'degree_p': data['degree_p'], |
|
'internship': data['internship'], |
|
'management': data['management'], |
|
'leadership': data['leadership'], |
|
}, index=[0]) |
|
|
|
new_data_mkt = pd.DataFrame({ |
|
'degree_p': data['degree_p'], |
|
'internship': data['internship'], |
|
'communication': data['communication'], |
|
'sales': data['sales'], |
|
}, index=[0]) |
|
|
|
|
|
p_prodeng = rf_prodengg.predict(new_data_prodengg) |
|
prob_prdeng = rf_prodengg.predict_proba(new_data_prodengg) |
|
if p_prodeng == 1: |
|
pred_prodeng = 'Placed' |
|
prob_prodeng = prob_prdeng[0][1] |
|
else: |
|
pred_prodeng = 'Not-placed' |
|
prob_prodeng = prob_prdeng[0][0] |
|
|
|
p_fstk = rf_fullstk.predict(new_data_fullstk) |
|
prob_fstk = rf_fullstk.predict_proba(new_data_fullstk) |
|
if p_fstk == 1: |
|
pred_fstk = 'Placed' |
|
prob_fstk = prob_fstk[0][1] |
|
else: |
|
pred_fstk = 'Not-placed' |
|
prob_fstk = prob_fstk[0][0] |
|
|
|
p_mkt = rf_mkt.predict(new_data_mkt) |
|
prob_mkt = rf_mkt.predict_proba(new_data_mkt) |
|
if p_mkt == 1: |
|
pred_mkt = 'Placed' |
|
prob_mkt = prob_mkt[0][1] |
|
else: |
|
pred_mkt = 'Not-placed' |
|
prob_mkt = prob_mkt[0][0] |
|
|
|
result = { |
|
'prediction_fullstk': pred_fstk, |
|
'probability_fullstk': prob_fstk, |
|
'prediction_prodengg': pred_prodeng, |
|
'probability_prodengg': prob_prodeng, |
|
'prediction_mkt': pred_mkt, |
|
'probability_mkt': prob_mkt |
|
} |
|
|
|
return jsonify(result) |
|
|
|
if __name__ == '__main__': |
|
app.run(debug=True) |
|
|