Spaces:
Sleeping
Sleeping
import streamlit as st | |
import pandas as pd | |
import pickle | |
# Load the trained model | |
with open('model_xgb.pkl', 'rb') as file_1: | |
model_inf_xgb = pickle.load(file_1) | |
# Function to run the Streamlit app | |
def run(): | |
# Set page title and sidebar image | |
st.write('๐ฎ Customer Churn ๐ฎ') | |
# Introduction | |
st.subheader("๐ Prediction of Customer Churn") | |
st.write("Welcome to the Customer Churn Predictor app! This app predicts whether a customer will Churn on their subscription based on provided information.") | |
# Input form | |
st.markdown('## ๐ Input Data') | |
with st.form('my_form'): | |
# Input fields | |
Age = st.number_input('๐ณ Age', min_value=0.0, max_value=65.0) | |
st.markdown('**Gender:** Male And Female') | |
Gender = st.selectbox('๐ป Gender', options=['Male', 'Female']) | |
Tenure = st.number_input('๐ณ Tenure', min_value=0.0, max_value=60.0) | |
Usage_Frequency = st.number_input('Usage Frequency', min_value=0.0, max_value=30.0) | |
Support_Calls = st.number_input('Support Calls', min_value=0.0, max_value=10.0) | |
Payment_Delay = st.number_input('Payment Delay', min_value=0.0, max_value=30.0) | |
Subscription_Type = st.selectbox('Subscription Type', options=['Basic', 'Standard', 'Premium']) | |
Contract_length = st.selectbox('Subscription Type', options=['Monthly', 'Annual', 'Quarterly']) | |
Total_Spend = st.number_input('Total Spend', min_value=100.0, max_value=1000.0) | |
submitted = st.form_submit_button('๐ Let\'s Check!') | |
# Create DataFrame from user input | |
data = { | |
'Age': Age, | |
'Gender': Gender, | |
'Tenure' : Tenure, | |
'Usage Frequency' : Usage_Frequency, | |
'Support Calls': Support_Calls, | |
'Payment Delay' : Payment_Delay, | |
'Subscription Type' : Subscription_Type, | |
'Contract Length' : Contract_length, | |
'Total Spend' : Total_Spend | |
} | |
df = pd.DataFrame([data]) | |
st.dataframe(df) | |
# Make prediction | |
if submitted: | |
prediction = model_inf_xgb.predict(df) | |
# Display prediction result | |
if prediction[0] == 0: | |
st.write('๐ข Not Churn') | |
else: | |
st.write('๐ด Churn') | |
if __name__== '__main__': | |
run() |