ChurnPrediction / app.py
DataWizard9742's picture
Create app.py
27c3631 verified
Raw History Blame Contribute Delete
1.98 kB
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")