Spaces:
Runtime error
Runtime error
Create app.py
Browse files
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.")
|