IntentToStay2 / app.py
AttiKiss's picture
Update app.py
ce041f6 verified
import pandas as pd
import gradio as gr
import pickle
# Load the XGBoost model from disk
loaded_model = pickle.load(open("xgb_h.pkl", 'rb'))
# Function to predict intent to stay
def predict_intent_to_stay(Engagement, WorkEnvironment, UpperLevelManagement, RewardsBenefits, EmployeeWellBeing, Workload, LearningDevelopment):
# Create input DataFrame
input_data = pd.DataFrame({
'Engagement': [Engagement],
'WorkEnvironment': [WorkEnvironment],
'UpperLevelManagement': [UpperLevelManagement],
'RewardsBenefits': [RewardsBenefits],
'EmployeeWellBeing': [EmployeeWellBeing],
'Workload': [Workload],
'LearningDevelopment': [LearningDevelopment]
})
# Perform prediction using the loaded model
prediction = loaded_model.predict_proba(input_data)[0]
return {"Leave": prediction[0], "Stay": prediction[1]}
# Create sliders for user input
engagement_slider = gr.Slider(minimum=1, maximum=5, value=3, label="Engagement")
work_environment_slider = gr.Slider(minimum=1, maximum=5, value=3, label="Work Environment")
upper_level_management_slider = gr.Slider(minimum=1, maximum=5, value=3, label="Upper Level Management")
rewards_benefits_slider = gr.Slider(minimum=1, maximum=5, value=3, label="Rewards Benefits")
employee_wellbeing_slider = gr.Slider(minimum=1, maximum=5, value=3, label="Employee Well-Being")
workload_slider = gr.Slider(minimum=1, maximum=5, value=3, label="Workload")
learning_development_slider = gr.Slider(minimum=1, maximum=5, value=3, label="Learning & Development")
# Create the interface
interface = gr.Interface(
fn=predict_intent_to_stay,
inputs=[
engagement_slider,
work_environment_slider,
upper_level_management_slider,
rewards_benefits_slider,
employee_wellbeing_slider,
workload_slider,
learning_development_slider
],
outputs="text"
)
# Launch the interface
interface.launch()