Update app.py
Browse files
app.py
CHANGED
@@ -22,50 +22,58 @@ def main():
|
|
22 |
st.write(f"- {column}: {values}")
|
23 |
|
24 |
# Main content
|
25 |
-
st.write("
|
|
|
|
|
26 |
|
27 |
-
#
|
28 |
col1, col2, col3 = st.columns(3)
|
29 |
|
|
|
30 |
with col1:
|
31 |
age = st.slider("Age", min_value=18, max_value=70, value=30)
|
32 |
distance_from_home = st.slider("Distance From Home", min_value=1, max_value=30, value=10)
|
33 |
-
environment_satisfaction = st.
|
34 |
hourly_rate = st.slider("Hourly Rate", min_value=30, max_value=100, value=65)
|
35 |
-
job_involvement = st.
|
36 |
-
|
|
|
37 |
with col2:
|
|
|
|
|
38 |
monthly_income = st.slider("Monthly Income", min_value=1000, max_value=20000, value=5000)
|
39 |
num_companies_worked = st.slider("Number of Companies Worked", min_value=0, max_value=10, value=2)
|
40 |
-
|
41 |
-
stock_option_level = st.slider("Stock Option Level", min_value=0, max_value=3, value=1)
|
42 |
-
training_times_last_year = st.slider("Training Times Last Year", min_value=0, max_value=6, value=2)
|
43 |
|
|
|
44 |
with col3:
|
45 |
-
|
|
|
|
|
|
|
46 |
years_since_last_promotion = st.slider("Years Since Last Promotion", min_value=0, max_value=15, value=3)
|
47 |
years_with_curr_manager = st.slider("Years With Current Manager", min_value=0, max_value=15, value=3)
|
48 |
|
49 |
-
over_time = st.checkbox("Over Time")
|
50 |
-
|
51 |
# Create a DataFrame to hold the user input data
|
52 |
input_data = pd.DataFrame({
|
53 |
'Age': [age],
|
54 |
'DistanceFromHome': [distance_from_home],
|
55 |
'EnvironmentSatisfaction': [environment_satisfaction],
|
56 |
'HourlyRate': [hourly_rate],
|
|
|
|
|
57 |
'JobSatisfaction': [job_satisfaction],
|
58 |
'MonthlyIncome': [monthly_income],
|
59 |
'NumCompaniesWorked': [num_companies_worked],
|
|
|
60 |
'PercentSalaryHike': [percent_salary_hike],
|
61 |
'StockOptionLevel': [stock_option_level],
|
62 |
'TrainingTimesLastYear': [training_times_last_year],
|
63 |
'WorkLifeBalance': [work_life_balance],
|
64 |
'YearsSinceLastPromotion': [years_since_last_promotion],
|
65 |
-
'YearsWithCurrManager': [years_with_curr_manager]
|
66 |
-
'OverTime': [over_time]
|
67 |
})
|
68 |
-
|
69 |
# Make predictions
|
70 |
prediction = model.predict(input_data)
|
71 |
probability = model.predict_proba(input_data)[:, 1]
|
|
|
22 |
st.write(f"- {column}: {values}")
|
23 |
|
24 |
# Main content
|
25 |
+
st.write("Welcome to the Employee Attrition Prediction App!")
|
26 |
+
st.write("This app helps HR practitioners predict employee attrition using a trained CatBoost model.")
|
27 |
+
st.write("Please provide the following information to make a prediction:")
|
28 |
|
29 |
+
# Define layout with three columns
|
30 |
col1, col2, col3 = st.columns(3)
|
31 |
|
32 |
+
# Column 1
|
33 |
with col1:
|
34 |
age = st.slider("Age", min_value=18, max_value=70, value=30)
|
35 |
distance_from_home = st.slider("Distance From Home", min_value=1, max_value=30, value=10)
|
36 |
+
environment_satisfaction = st.select_slider("Environment Satisfaction", options=[1, 2, 3, 4], value=2)
|
37 |
hourly_rate = st.slider("Hourly Rate", min_value=30, max_value=100, value=65)
|
38 |
+
job_involvement = st.select_slider("Job Involvement", options=[1, 2, 3, 4], value=2)
|
39 |
+
|
40 |
+
# Column 2
|
41 |
with col2:
|
42 |
+
job_level = st.select_slider("Job Level", options=[1, 2, 3, 4, 5], value=3)
|
43 |
+
job_satisfaction = st.select_slider("Job Satisfaction", options=[1, 2, 3, 4], value=2)
|
44 |
monthly_income = st.slider("Monthly Income", min_value=1000, max_value=20000, value=5000)
|
45 |
num_companies_worked = st.slider("Number of Companies Worked", min_value=0, max_value=10, value=2)
|
46 |
+
over_time = st.checkbox("Over Time")
|
|
|
|
|
47 |
|
48 |
+
# Column 3
|
49 |
with col3:
|
50 |
+
percent_salary_hike = st.slider("Percent Salary Hike", min_value=10, max_value=25, value=15)
|
51 |
+
stock_option_level = st.select_slider("Stock Option Level", options=[0, 1, 2, 3], value=1)
|
52 |
+
training_times_last_year = st.slider("Training Times Last Year", min_value=0, max_value=6, value=2)
|
53 |
+
work_life_balance = st.select_slider("Work Life Balance", options=[1, 2, 3, 4], value=2)
|
54 |
years_since_last_promotion = st.slider("Years Since Last Promotion", min_value=0, max_value=15, value=3)
|
55 |
years_with_curr_manager = st.slider("Years With Current Manager", min_value=0, max_value=15, value=3)
|
56 |
|
|
|
|
|
57 |
# Create a DataFrame to hold the user input data
|
58 |
input_data = pd.DataFrame({
|
59 |
'Age': [age],
|
60 |
'DistanceFromHome': [distance_from_home],
|
61 |
'EnvironmentSatisfaction': [environment_satisfaction],
|
62 |
'HourlyRate': [hourly_rate],
|
63 |
+
'JobInvolvement': [job_involvement],
|
64 |
+
'JobLevel': [job_level],
|
65 |
'JobSatisfaction': [job_satisfaction],
|
66 |
'MonthlyIncome': [monthly_income],
|
67 |
'NumCompaniesWorked': [num_companies_worked],
|
68 |
+
'OverTime': [over_time],
|
69 |
'PercentSalaryHike': [percent_salary_hike],
|
70 |
'StockOptionLevel': [stock_option_level],
|
71 |
'TrainingTimesLastYear': [training_times_last_year],
|
72 |
'WorkLifeBalance': [work_life_balance],
|
73 |
'YearsSinceLastPromotion': [years_since_last_promotion],
|
74 |
+
'YearsWithCurrManager': [years_with_curr_manager]
|
|
|
75 |
})
|
76 |
+
|
77 |
# Make predictions
|
78 |
prediction = model.predict(input_data)
|
79 |
probability = model.predict_proba(input_data)[:, 1]
|