dayuima01/M1P2
0
1import streamlit as st2import pandas as pd3import numpy as np4import joblib5import tensorflow6 7with open('full_pipeline.pkl', 'rb') as file_1:8 model_pipeline = joblib.load(file_1)9 10from tensorflow.keras.models import load_model11model_ann = load_model('churn_model.h5')12 13 14st.title("Customer Churn Prediction")15 16membership_category = st.selectbox('Membership Category',('No Membership', 'Basic Membership', 'Silver Membership', 'Premium Membership', 'Gold Membership', 'Platinum Membership'), index=1)17 18 19avg_transaction_value = st.number_input('Average Transaction Value :', min_value = 800.460000, max_value = 99914.050000, value = 800.460000)20 21 22points_in_wallet = st.number_input('Points In Wallet :', min_value = 0.000000, max_value = 2069.069761, value = 0.000000)23 24 25feedback = st.selectbox('Feedback',('Poor Website', 'Poor Customer Service', 'Too many ads', 'Poor Product Quality', 'No reason specified', 'Products always in Stock', 'Reasonable Price', 'Quality Customer Care', 'User Friendly Website'), index=1)26 27df_inf = pd.DataFrame({28 'membership_category':[membership_category],29 'avg_transaction_value':[avg_transaction_value],30 'points_in_wallet':[points_in_wallet],31 'feedback':[feedback]32})33 34if st.button('Predict'):35 data_inf_transform = model_pipeline.transform(df_inf)36 y_pred_inf = model_ann.predict(data_inf_transform)37 y_pred_inf = np.where(y_pred_inf >= 0.5, 1, 0)38 churn_status = np.where(y_pred_inf == 0, "No", "Yes")39 40 if churn_status == "No":41 st.success(f"The customer is predicted to not churn.")42 else:43 st.error(f"The customer is predicted to churn.")44# submitted = st.form_submit_button('Predict')45# df_inf = pd.DataFrame([df_inf])46# st.dataframe(df_inf)47 48# if st.button('Predict'):49# data_inf_transform = model_pipeline.transform(df_inf)50# y_pred_inf = model_ann.predict(data_inf_transform)51# y_pred_inf = np.where(y_pred_inf >= 0.5, 1, 0)52# st.write('# Churn :', np.where(y_pred_inf == 0, "No", "Yes"))53 54# model_ann1 = model_ann.predict(df_inf[['membership_category','avg_transaction_value','points_in_wallet','feedback']])55 56# if st.button('Predict'): 57# final_result_ann = model_ann.predict(df_inf[['membership_category','avg_transaction_value','points_in_wallet','feedback']])58# st.write('Hasil Prediksi: ')59# if final_result_ann == 1:60# st.subheader('Churn')61# else:62# st.subheader('No Churn')63 64 65 66 67 68 