Harsh12 commited on
Commit
cb71522
·
1 Parent(s): d38cb24

Upload 7 files

Browse files
Files changed (7) hide show
  1. Employee_Promotion_Prediction.ipynb +0 -0
  2. app.py +114 -0
  3. requirements.txt +0 -0
  4. rf.pkl +3 -0
  5. sc.pkl +3 -0
  6. test (1).csv +0 -0
  7. train (1).csv +0 -0
Employee_Promotion_Prediction.ipynb ADDED
The diff for this file is too large to render. See raw diff
 
app.py ADDED
@@ -0,0 +1,114 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import pickle
3
+ import numpy as np
4
+
5
+ # Set page title and icon
6
+ st.set_page_config(page_title="Employee Promotion Prediction", page_icon=":guardsman:", layout="wide")
7
+
8
+ # Add a big heading
9
+ st.title("Employee Promotion Prediction")
10
+
11
+ # Change background color to black
12
+ st.markdown(
13
+ """
14
+ <style>
15
+ .reportview-container {
16
+ background: black
17
+ }
18
+ </style>
19
+ """,
20
+ unsafe_allow_html=True
21
+ )
22
+
23
+ model = pickle.load(open('rf.pkl', 'rb'))
24
+ scaling = pickle.load(open('sc.pkl', 'rb'))
25
+
26
+ # Define the department options
27
+ department_options = ['Analytics', 'Finance', 'HR', 'Legal', 'Operations', 'Procurement', 'R&D', 'Sales & Marketing', 'Technology']
28
+
29
+ # Define the education options
30
+ education_options = ["Bachelor's", "Master's & above", "Below Secondary"]
31
+
32
+ # Define the gender options
33
+ gender_options = ['Male', 'Female']
34
+
35
+ # Define the KPIs met options
36
+ kpis_met_options = ['No', 'Yes']
37
+
38
+ # Define the awards won options
39
+ awards_won_options = ['No', 'Yes']
40
+
41
+ # Define the maximum training score
42
+ max_training_score = 100
43
+
44
+ # Define the maximum number of trainings
45
+ max_trainings = 10
46
+
47
+ # Define the minimum and maximum age
48
+ min_age, max_age = 18, 60
49
+
50
+ # Define the minimum and maximum length of service
51
+ min_service_length, max_service_length = 0, 20
52
+
53
+ # Define the minimum and maximum previous year rating
54
+ min_prev_year_rating, max_prev_year_rating = 1, 5
55
+
56
+
57
+ # Define the input components using Streamlit
58
+
59
+ department = st.selectbox('---> Department', department_options)
60
+ education = st.selectbox('---> Education', education_options)
61
+ gender = st.radio('---> Gender', gender_options)
62
+ no_of_trainings = st.number_input('---> Number of Trainings', min_value=1, max_value=max_trainings, value=1)
63
+ age = st.slider('---> Age', min_value=min_age, max_value=max_age)
64
+ previous_year_rating = st.slider('---> Previous Year Rating', min_value=min_prev_year_rating, max_value=max_prev_year_rating)
65
+ length_of_service = st.number_input('---> Length of Service', min_value=min_service_length, max_value=max_service_length, value=0)
66
+ kpis_met = st.selectbox('---> KPIs Met >80%', kpis_met_options)
67
+ awards_won = st.selectbox('---> Awards Won?', awards_won_options)
68
+ avg_training_score = st.number_input('---> Average Training Score', max_value=max_training_score)
69
+
70
+
71
+ department_encoding = {'Analytics':0, 'Finance':1, 'HR':2, 'Legal':3, 'Operations':4, 'Procurement':5, 'R&D':6, 'Sales & Marketing':7, 'Technology':8}
72
+ education_encoding = {"Bachelor's":2, "Master's & above":3, "Below Secondary":1}
73
+ gender_encoding = {'Male':1, 'Female':0}
74
+ kpis_met_encoding = {'No':0, 'Yes':1}
75
+ awards_won_encoding = {'No':0, 'Yes':1}
76
+
77
+ sum_metric = awards_won_encoding[awards_won] + kpis_met_encoding[kpis_met] + previous_year_rating
78
+ total_score = avg_training_score * no_of_trainings
79
+
80
+ inputs_to_model = np.array([(department_encoding[department], education_encoding[education],
81
+ gender_encoding[gender], no_of_trainings, age, previous_year_rating,
82
+ length_of_service, kpis_met_encoding[kpis_met], awards_won_encoding[awards_won], avg_training_score,
83
+ sum_metric, total_score)])
84
+
85
+ final_inputs = scaling.transform(inputs_to_model)
86
+
87
+ # Print the user inputs
88
+ if st.button('Submit'):
89
+ # st.write('Department:', department)
90
+ # st.write('Education:', education)
91
+ # st.write('Gender:', gender)
92
+ # st.write('Number of Trainings:', no_of_trainings)
93
+ # st.write('Age:', age)
94
+ # st.write('Previous Year Rating:', previous_year_rating)
95
+ # st.write('Length of Service:', length_of_service)
96
+ # st.write('KPIs Met >80%:', kpis_met)
97
+ # st.write('Awards Won?:', awards_won)
98
+ # st.write('Average Training Score:', avg_training_score)
99
+ # st.write('sum metric', sum_metric)
100
+ # st.write('total score', total_score)
101
+ # st.write('model inputs', inputs_to_model)
102
+ # st.write('final model inputs', final_inputs)
103
+
104
+ prediction = model.predict(final_inputs)
105
+
106
+ if prediction[0] == 1:
107
+ st.header('The Employee should get Promotion')
108
+
109
+ else:
110
+ st.header('The Employee should not get promotion')
111
+
112
+
113
+
114
+
requirements.txt ADDED
Binary file (122 Bytes). View file
 
rf.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:248eaef4cca11b95ec23dac1239bfd19bf7b1264306a5b4d51b3b14f67c4e215
3
+ size 98524662
sc.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a51acf418ce431df8f9ddcb7153244ab18016d069e90c4fa344b86f5d3e900aa
3
+ size 1003
test (1).csv ADDED
The diff for this file is too large to render. See raw diff
 
train (1).csv ADDED
The diff for this file is too large to render. See raw diff