placementrep / final model.py
harshiv's picture
Upload 5 files
6706a4b
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)