Astralsparks commited on
Commit
ceaf554
1 Parent(s): 3795c97

Upload 3 files

Browse files
Files changed (3) hide show
  1. app.py +92 -0
  2. func_model_tuned.hdf5 +0 -0
  3. preprocessor.pkl +3 -0
app.py ADDED
@@ -0,0 +1,92 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # import library yang dibutuhkan
2
+ import streamlit as st
3
+ import pandas as pd
4
+ import numpy as np
5
+ import joblib
6
+ from tensorflow import keras
7
+
8
+ # load preprocessor
9
+ with open('preprocessor.pkl','rb') as file_1:
10
+ preprocessor = joblib.load(file_1)
11
+
12
+ # load ANN model
13
+ model = keras.models.load_model('func_model_tuned.hdf5')
14
+
15
+ # Construct Data Infer
16
+ # define semua fitur/kolom
17
+ features = [
18
+ 'region_category', 'membership_category', 'joined_through_referral',
19
+ 'preferred_offer_types', 'medium_of_operation', 'days_since_last_login',
20
+ 'avg_time_spent', 'avg_transaction_value', 'avg_frequency_login_days',
21
+ 'points_in_wallet', 'used_special_discount',
22
+ 'offer_application_preference', 'feedback']
23
+
24
+ def infer(data_infer):
25
+ # preprocess input
26
+ preprocessed_data = preprocessor.transform(data_infer)
27
+ # predict result with best model
28
+ pred = model.predict(preprocessed_data)
29
+ pred = np.where(pred>0.5,1,0)
30
+ return pred
31
+
32
+ # header deployment
33
+ st.header("Customer Churn Prediction")
34
+
35
+
36
+ # artificial data infer
37
+ region_category_ = ['City', 'Town', 'Village']
38
+ region_category = st.selectbox("Where are you from?", region_category_)
39
+ membership_category_ = ['No Membership','Basic Membership','Premium Membership','Silver Membership','Gold Membership','Platinum Membership']
40
+ membership_category = st.selectbox("What is your membership status?", membership_category_)
41
+ joined_through_referral = st.radio("Did you joined through referral?",('Yes','No'))
42
+ preferred_offer_types_ = ['Gift Vouchers/Coupons', 'Without Offers','Credit/Debit Card Offers']
43
+ preferred_offer_types = st.selectbox("Which one is your preferred offer types?", preferred_offer_types_)
44
+ medium_of_operation_ = ['Smartphone', 'Desktop', 'Both']
45
+ medium_of_operation = st.selectbox("What kind of device do you use to browse our website?", medium_of_operation_)
46
+ days_since_last_login = st.slider("How many days since you last logged in to our website?",0,90)
47
+ avg_time_spent = st.slider("Approximately, how long did you browse for product from our website?",0,90)
48
+ avg_transaction_value = st.slider("How much did you spend from our website? (give us the average)",0,100000)
49
+ avg_frequency_login_days = st.slider("How frequent did you visits our website in a day?",0,100)
50
+ points_in_wallet = st.slider("How many points do you have in your wallet?",0,10000)
51
+ used_special_discount = st.radio("Did you used special discount?",('Yes','No'))
52
+ offer_application_preference = st.radio("Did you prefer offers from us?",('Yes','No'))
53
+ feedback_ = ['Quality Customer Care', 'Too many ads', 'User Friendly Website',
54
+ 'Poor Website', 'No reason specified', 'Poor Customer Service',
55
+ 'Poor Product Quality', 'Reasonable Price',
56
+ 'Products always in Stock']
57
+ feedback = st.selectbox("From the following choice, please give us your feedback",feedback_)
58
+
59
+
60
+
61
+ if st.button("Submit"):
62
+ D ={
63
+ 'region_category' :region_category,
64
+ 'membership_category' :membership_category,
65
+ 'joined_through_referral' :joined_through_referral,
66
+ 'preferred_offer_types' :preferred_offer_types,
67
+ 'medium_of_operation' :medium_of_operation,
68
+ 'days_since_last_login' :days_since_last_login,
69
+ 'avg_time_spent' :avg_time_spent,
70
+ 'avg_transaction_value' :avg_transaction_value,
71
+ 'avg_frequency_login_days' :avg_frequency_login_days,
72
+ 'points_in_wallet' :points_in_wallet,
73
+ 'used_special_discount' :used_special_discount,
74
+ 'offer_application_preference' :offer_application_preference,
75
+ 'feedback' :feedback
76
+ }
77
+
78
+ # construct data inference dalam dataframe
79
+ data_infer = pd.DataFrame(data=D,columns=features,index=[0])
80
+
81
+
82
+ #panggil fungsi inference
83
+ pred = infer(data_infer)
84
+ pred_string = ''
85
+ if pred==1:
86
+ pred_string = "churn"
87
+ else:
88
+ pred_string = "not churn"
89
+
90
+ st.header(f"Prediction Result: ")
91
+ st.write("This customer will " + pred_string)
92
+
func_model_tuned.hdf5 ADDED
Binary file (53.4 kB). View file
 
preprocessor.pkl ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8b22acc3c142b5bf26c8f50063b4b717078bf1424ecd3967f0d67f32f57cde0c
3
+ size 6968