# import library import streamlit as st import pandas as pd import numpy as np import pickle # Load Model with open('model.pkl', 'rb') as file: model = pickle.load(file) # Function to run streamlit model predictor def run(): # Set Title st.title("Customer Churn Prediction") st.markdown('---') # Create a Form for Data Inference st.markdown('## Input Data') with st.form('my_form'): RowNumber = st.number_input('Row Number', min_value=10000, max_value=200000) CustomerId = st.number_input('Customer ID', min_value=100000, max_value=20000000) Surname = st.text_input('Surname or Last Name', '') CreditScore = st.number_input('Credit Score', min_value=350, max_value=850) Geography = st.selectbox('Select Geography', ['Spain', 'Germany', 'France']) Gender = st.selectbox('Select gender', ['Male', 'Female']) Age = st.number_input('Age', min_value=18, max_value=95) Tenure = st.number_input('Tenure', min_value=0, max_value=11) Balance = st.number_input('Balance', min_value=0, max_value=300000) NumOfProducts = st.selectbox('Number of Products', (1,2,3,4)) HasCrCard = st.selectbox('Has Credit Card or not? 0 = No, Yes = 1', (0,1)) IsActiveMember = st.selectbox('Is Active Member or not? 0 = No, Yes = 1', (0,1)) EstimatedSalary = st.number_input('Estimated Salary', min_value=12, max_value=300000) # Create a button to make predictions submitted = st.form_submit_button("Predict") # Dataframe data = {'RowNumber': RowNumber, 'CustomerId': CustomerId, 'Surname': Surname, 'CreditScore': CreditScore, 'Geography': Geography, 'Gender': Gender, 'Age': Age, 'Tenure': Tenure, 'Balance': Balance, 'NumOfProducts': NumOfProducts, 'HasCrCard': HasCrCard, 'IsActiveMember': IsActiveMember, 'EstimatedSalary': EstimatedSalary } df = pd.DataFrame([data]) st.dataframe(df) if submitted: y_pred_inf = model.predict(df) if y_pred_inf[0] == 0: st.write('~ This Customer is Predicted Not to Churn ~') else: st.write('~ This Customer is Predicted to Churn ~') if __name__== '__main__': run()