imastanaya08/Chustomer_Churn_Prediction
0
1import streamlit as st2import tensorflow as tf3from tensorflow import keras4from tensorflow.keras.models import load_model5from keras import layers6import numpy as np7import pandas as pd8import pickle9import json10 11#Load All File12with open('final_pipeline.pkl', 'rb') as file_1:13 model_pipeline = pickle.load(file_1)14 15model_ann = load_model('churn_model.h5')16 17def run() :18 19 # Membuat Form20 with st.form(key='form_parameters'):21 user_id = st.text_input('user_id', value='')22 age = st.number_input('Age', min_value=16, max_value=90, value=25, step=1, help='Usia Pemain')23 gender = st.selectbox('Gender', ('Male', 'Female'), index=1)24 region_category = st.selectbox('Region', ('City', 'Velage','Town'), index=1)25 membership_category = st.selectbox('Membership', ('No Membership', 'Basic Membership','Silver Membership','Gold Membership'), index=1)26 joining_date = st.selectbox('Joining', ('2015','2016','2017','2018','2019','2020', '2022','2023'), index=1)27 joined_through_referral = st.selectbox('joined_through_referral', ('Yes', 'No'), index=1)28 st.markdown('---')29 30 preferred_offer_types = st.selectbox('preferred_offer_types', ('Without Offers', 'Credit/Debit Card Offers','Gift Vouchers/Coupons'), index=1)31 medium_of_operation = st.selectbox('medium_of_operation', ('Desktop', 'Smartphone','Both'), index=1)32 internet_option = st.selectbox('internet_option', ('Wi-Fi', 'Fiber_Optic','Mobile_Data'), index=1)33 last_visit_time = st.number_input('last_visit_time', min_value=0, max_value=100, value=50)34 days_since_last_login = st.slider('days_since_last_login', -900,17, 100)35 avg_time_spent = st.slider('avg_time_spent', 0,100,500)36 37 avg_transaction_value = st.slider('avg_transaction_value', 0,10000,20000)38 avg_frequency_login_days = st.slider('avg_frequency_login_days', 0,11,200)39 points_in_wallet = st.slider('points_in_wallet', 0,590,2000)40 used_special_discount = st.selectbox('used_special_discount', ('Yes', 'No'), index=1)41 offer_application_preference = st.selectbox('offer_application_preference', ('Yes', 'No'), index=1)42 past_complaint = st.selectbox('past_complaint', ('Yes', 'No'), index=1)43 44 complaint_status = st.selectbox('complaint_status', ('Not Applicable', 'Solved', 'Solved in Follow', 'Unsolved','No Information Available'), index=1)45 feedback = st.selectbox('feedback', ('Not Poor Website', 'Poor Customer Service', 'Too many ads', 'Poor Product Quality','Reasonable Price','User Friendly Website'), index=1)46 churn_risk_score = st.selectbox('churn_risk_score', ('0', '1'), index=1)47 48 submitted = st.form_submit_button('Predict')49 50 data_inf = {51 'user_id ': '8f420209e7d129f8',52 'age': 29,53 'gender': 'F',54 'region_category': 'City',55 'membership_category': 'Basic Membership',56 'joining_date ': 2017-2-11,57 'joined_through_referral': 'Yes',58 'preferred_offer_types ': 'Yes',59 'medium_of_operation ': 'Desktop',60 'internet_option ': 'Fiber_Optic',61 'last_visit_time ' : 17,62 'days_since_last_login' : 17,63 'avg_time_spent': 338.150000,64 'avg_transaction_value': 15678.14,65 'avg_frequency_login_days': 11.0,66 'points_in_wallet': 590.22,67 'used_special_discount': 'No',68 'offer_application_preference': 'Yes',69 'past_complaint': 'Yes',70 'complaint_status': 'No Information Available',71 'feedback': 'Poor Customer Service',72 'churn_risk_score': '1'73 }74 data_inf = pd.DataFrame([data_inf])75 st.dataframe(data_inf)76 77 if submitted:78 # Transform Inference-Set79 80 data_inf_transform = model_pipeline.transform(data_inf)81 data_inf_transform82 83 # Predict using Neural Network84 y_pred_inf = model_ann.predict(data_inf_transform)85 y_pred_inf = np.where(y_pred_inf>= 0.5,1,0)86 if y_pred_inf == 1:87 88 st.write('### Hasil Prediksi apakah pelanggan Churn : Yes ')89 90 else:91 st.write('### Hasil Prediksi apakah pelanggan Churn : No ')92 