ChurnPrediction / app.py
DataWizard9742's picture
Create app.py
27c3631 verified
import streamlit as st
import numpy as np
import pandas as pd
import pickle
import joblib
import sklearn
model = joblib.load("model_Rf-3.pkl",'rb')
st.title("Customer Churn Prediction")
st.write("Predict whether a customer will churn based on their details")
# ['CreditScore', 'Age', 'Tenure', 'Balance', 'EstimatedSalary']
credit_score = st.number_input("Credit Score",min_value=300,max_value=900)
credit_score = credit_score/900
age = st.slider("Age",min_value=18,max_value=100)
age = age/92
tenure = st.slider("Tenure",min_value=0,max_value=10)
tenure = tenure/10
balance = st.number_input("Balance",min_value=0.0,step=1000.0)
balance = balance/250898.090000
num_of_prods = st.slider("Number of Products",min_value=1,max_value=4)
num_of_prods = num_of_prods/4
has_cr_card = st.selectbox("Has Credit Card",[0,1],format_func = lambda x:"YES" if x==1 else "NO")
is_activemember = st.selectbox("Are you an Active Member",[0,1],format_func = lambda x:"YES" if x==1 else "NO")
salary = st.number_input("Estimated Salary",min_value=0.0,step=5000.0)
salary = salary/199992.480000
geography = st.selectbox("Please Ennter your Country",["France","Germany","Spain"])
france,germany,spain = 0,0,0
if geography=="France":
france = 1
germany = 0
spain = 0
elif geography == "Germany":
france = 0
germany = 1
spain = 0
else:
france = 0
germany = 0
spain = 1
gender = st.selectbox("Please Ennter your Gender",["Male","Female"])
gender_male , gender_female = 0,0
if gender=="Male":
gender_male = 1
gender_female = 0
else:
gender_male = 0
gender_female = 1
inputs = np.array([[credit_score,age,tenure,balance,num_of_prods,has_cr_card,is_activemember,salary,france,germany,spain,gender_male,gender_female]])
if st.button("--PREDICT--"):
prediction = model.predict(inputs)
if prediction[0] == 1:
st.error("The customer is likely to churn")
else:
st.success("The customer is not likely to churn")