Nzlul commited on
Commit
b5a5651
·
1 Parent(s): 77a79bd

Create app.py

Browse files
Files changed (1) hide show
  1. app.py +55 -0
app.py ADDED
@@ -0,0 +1,55 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import pandas as pd
3
+ import numpy as np
4
+ import joblib
5
+ import tensorflow
6
+
7
+ with open('full_pipeline.pkl', 'rb') as file_1:
8
+ model_pipeline = joblib.load(file_1)
9
+
10
+ from tensorflow.keras.models import load_model
11
+ model_ann = load_model('churn_model.h5')
12
+
13
+ st.title("Customer Churn Prediction")
14
+
15
+ membership_category = st.selectbox('Membership Category',('No Membership',
16
+ 'Basic Membership',
17
+ 'Silver Membership',
18
+ 'Premium Membership',
19
+ 'Gold Membership',
20
+ 'Platinum Membership'), index=1)
21
+ avg_transaction_value = st.number_input('Average Transaction Value :',
22
+ min_value = 800.460000,
23
+ max_value = 99914.050000,
24
+ value = 800.460000)
25
+ points_in_wallet = st.number_input('Points In Wallet :',
26
+ min_value = 0.000000,
27
+ max_value = 2069.069761,
28
+ value = 0.000000)
29
+ feedback = st.selectbox('Feedback',('Poor Website',
30
+ 'Poor Customer Service',
31
+ 'Too Many Ads',
32
+ 'Poor Product Quality',
33
+ 'No Reason Specified',
34
+ 'Products Always in Stock',
35
+ 'Reasonable Price',
36
+ 'Quality Customer Care',
37
+ 'User Friendly Website'), index=1)
38
+
39
+ df_inf = pd.DataFrame({
40
+ 'membership_category' : [membership_category],
41
+ 'avg_transaction_value' : [avg_transaction_value],
42
+ 'points_in_wallet' : [points_in_wallet],
43
+ 'feedback' : [feedback]
44
+ })
45
+
46
+ if st.button('Predict'):
47
+ data_inf_transform = model_pipeline.transform(df_inf)
48
+ y_pred_inf = model_ann.predict(data_inf_transform)
49
+ y_pred_inf = np.where(y_pred_inf >= 0.5, 1, 0)
50
+ churn_status = np.where(y_pred_inf == 0, "No", "Yes")
51
+
52
+ if churn_status == "No":
53
+ st.success(f"The customer is predicted to not churn.")
54
+ else:
55
+ st.error(f"The customer is predicted to churn.")