placementrep / model.py
harshiv's picture
Rename final model.py to model.py
8438127
raw
history blame
3.3 kB
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
import onnx
import random
df=pd.read_csv("Placement (2).csv")
df.head()
df=df.drop(columns=["sl_no","stream","ssc_p","ssc_b","hsc_p","hsc_b","etest_p"])
df['internship'] = df['internship'].map({'Yes':random.randint(0,5),'No':0})
df['status'] = df['status'].map({'Placed':1,'Not Placed':0})
df.head()
X_fullstk= df.drop(['status','management','leadership','communication','sales'],axis=1)
y= df['status']
X_prodengg=df.drop(['status','DSA','java','communication','sales'],axis=1)
X_mkt=df.drop(['status','management','leadership','DSA','java'],axis=1)
X_train_fullstk,X_test_fullstk,y_train,y_test=train_test_split(X_fullstk,y,test_size=0.20,random_state=42)
X_train_prodengg,X_test_prodengg,y_train,y_test=train_test_split(X_prodengg,y,test_size=0.20,random_state=42)
X_train_mkt,X_test_mkt,y_train,y_test=train_test_split(X_mkt,y,test_size=0.20,random_state=42)
rf_fullstk = RandomForestClassifier()
rf_fullstk.fit(X_train_fullstk,y_train)
rf_prodengg=RandomForestClassifier()
rf_prodengg.fit(X_train_prodengg,y_train)
rf_mkt=RandomForestClassifier()
rf_mkt.fit(X_train_mkt,y_train)
y_pred_full = rf_fullstk.predict(X_test_fullstk)
y_pred_prodengg = rf_prodengg.predict(X_test_prodengg)
y_pred_mkt = rf_mkt.predict(X_test_mkt)
score1=accuracy_score(y_test,y_pred_full)
score2=accuracy_score(y_test,y_pred_prodengg)
score3=accuracy_score(y_test,y_pred_mkt)
rf_fullstk.fit(X_fullstk,y)
rf_mkt.fit(X_mkt,y)
rf_prodengg.fit(X_prodengg,y)
new_data_fullstk = pd.DataFrame({
'degree_p':75,
'internship':1,
'DSA':1,
'java':0,
},index=[0])
new_data_prodeng = pd.DataFrame({
'degree_p':75,
'internship':0,
'management':1,
'leadership':0,
},index=[0])
new_data_mkt = pd.DataFrame({
'degree_p':75,
'internship':0,
'communication':0,
'sales':1,
},index=[0])
(rf_fullstk.feature_importances_)
(rf_mkt.feature_importances_)
p_fstk=rf_fullstk.predict(new_data_fullstk)
prob_fstk=rf_fullstk.predict_proba(new_data_fullstk)
if p_fstk==1:
print('Placed')
print(f"You will be placed with probability of {prob_fstk[0][1]:.2f}")
else:
print("Not-placed")
p_prodeng=rf_prodengg.predict(new_data_prodeng)
prob_prdeng=rf_prodengg.predict_proba(new_data_prodeng)
if p_prodeng==1:
print('Placed')
print(f"You will be placed with probability of {prob_prdeng[0][1]:.2f}")
else:
print("Not-placed")
p_mkt=rf_mkt.predict(new_data_mkt)
prob_mkt=rf_mkt.predict_proba(new_data_mkt)
if p_mkt==1:
print('Placed')
print(f"You will be placed with probability of {prob_mkt[0][1]:.2f}")
else:
print("Not-placed")
with open('rf_hacathon_fullstk.pkl', 'wb') as f1:
pickle.dump(rf_fullstk, f1)
with open('rf_hacathon_prodengg.pkl', 'wb') as f2:
pickle.dump(rf_prodengg, f2)
with open('rf_hacathon_mkt.pkl', 'wb') as f3:
pickle.dump(rf_mkt, f3)