sheltonmaharesh's picture
Upload 4 files
c741b95 verified
import streamlit as st
import pandas as pd
import os
from joblib import load
# --- Model Loading ---
@st.cache_resource
def load_model():
model_path = "customer_churn_pipeline.joblib" # same folder
if not os.path.exists(model_path):
st.error(f"Model file not found: {model_path}")
st.stop()
try:
pipeline = load(model_path)
except Exception as e:
st.error(f"Failed to load model: {e}")
st.stop()
return pipeline
pipeline = load_model()
# --- Streamlit UI ---
st.title("Credit Card Customer Churn Prediction")
st.write("Adjust the input values below to predict whether a customer will churn:")
# Numeric inputs
customer_age = st.slider("Customer Age", 18, 100, 30)
credit_limit = st.slider("Credit Limit", 0, 100000, 5000, step=100)
# Categorical input
gender = st.selectbox("Gender", ["Female", "Male"])
# Build input dataframe
input_data = pd.DataFrame({
'Customer_Age': [customer_age],
'Credit_Limit': [credit_limit],
'Gender': [gender]
})
# Predict button
if st.button("Predict Churn"):
prediction = pipeline.predict(input_data)[0]
probability = pipeline.predict_proba(input_data)[0][1]
if prediction == 1:
st.warning(f"⚠️ Customer is likely to churn! Probability: {probability:.2%}")
else:
st.success(f"✅ Customer is not likely to churn. Probability: {probability:.2%}")