Spaces:
Runtime error
Runtime error
| # 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) |