File size: 2,944 Bytes
b194161
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
3a4abbb
 
 
 
b194161
20d5ada
3a4abbb
 
b194161
20d5ada
 
3a4abbb
 
 
 
 
b194161
3a4abbb
 
b194161
3a4abbb
 
b194161
 
3a4abbb
 
b194161
3a4abbb
 
b194161
3a4abbb
 
b194161
3a4abbb
 
b194161
3a4abbb
 
b194161
3a4abbb
 
b194161
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ae49019
b194161
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
# Import library
import streamlit as st
import pandas as pd
import numpy as np
import pickle
from tensorflow.keras.models import load_model

# Load All Files
# Model KNN
# Load All Files
# Preprocessor
with open('preprocessor.pkl', 'rb') as file_1:
  preprocessor = pickle.load(file_1)

model = load_model('best_model.h5')

st.subheader('Customer Churn Prediction')
st.write('Please Fill The Information Below')

# make 2 columns
col1, col2 = st.columns(2)
col11, col22, col33 = st.columns(3)

# Variabel for input data
membership = ['Premium Membership', 'Platinum Membership', 'Gold Membership','Silver Membership', 'Basic Membership', 'No Membership']
with col1:
  membership_category = st.radio('Membership',(membership))

feedback_cat = ['Products always in Stock','Reasonable Price','User Friendly Website', 'Quality Customer Care',
                'Poor Product Quality', 'Poor Website', 'Poor Customer Service', 'Too many ads', 'No reason specified']
with col2:
  feedback = st.radio('Feedback',(feedback_cat))

with col1:
  offer_application_preference = st.radio('Prefer Offer',('Yes', 'No'))

with col2:
  preferred_offer_types = st.radio('Offer Type',('Gift Vouchers/Coupons', 'Credit/Debit Card Offers','Without Offers'))

with col1:
  joined_through_referral = st.radio('Using Refferall',('Yes', 'No'))


with col11:
  points_in_wallet = st.number_input('Points In Wallet',0.00, 1500.00)

with col22:
  avg_time_spent = st.number_input('Time Spent On Website (Hours)',0.00, 3050.00)

with col33:
  avg_transaction_value = st.number_input('Total Transcation Amount (USD)',0.00, 99900.00)

with col11:
  avg_frequency_login_days = st.slider('Login Website In A Day',0, 70)

with col22:
  days_since_last_login = st.slider('Days Since Last Login',0, 30)

with col33:
  days_since_join = st.slider('Days Since Join',0, 30)

# make buttom for prediction

if st.button('Predict'):
    data_inf =  pd.DataFrame({'membership_category': membership_category, 'feedback': feedback,
                        'points_in_wallet': points_in_wallet,'avg_transaction_value': avg_transaction_value,
                         'avg_frequency_login_days' : avg_frequency_login_days,'joined_through_referral' : joined_through_referral,
                         'offer_application_preference' : offer_application_preference, 'preferred_offer_types' : preferred_offer_types,
                         'avg_time_spent' : avg_time_spent, 'days_since_join' : days_since_join,
                         'days_since_last_login' : days_since_last_login}, index=[0])

# Preprocess data inf    
    data_inf_trans = preprocessor.transform(data_inf)
    
# prediction using model
    y_pred = model.predict(data_inf_trans, verbose=0)

# Round the prediction
    y_pred = np.round(y_pred)
    if y_pred == 1:
      y_pred = 'Churn'
    else:
      y_pred = 'Not Churn'

# make prediction into dataframe
    st.subheader('The Customer Will be')
    st.subheader(y_pred)