import streamlit as st import pandas as pd import numpy as np import pickle import json #Load All files #Load model with open('best_pipe.pkl', 'rb') as file_1: best_pipe = pickle.load(file_1) with open('num_col.txt', 'r') as file_2: num_col = json.load(file_2) with open('cat_col.txt', 'r') as file_3: cat_col = json.load(file_3) def run(): with st.form('Credit_Card_Default'): limit_balance = st.number_input('Limit Balance', value=80000) sex = st.selectbox('Sex (1 = Male, 2 = Female)', (1, 2)) education_level = st.selectbox('Education Level (1 = Graduate School, 2 = University, 3 = High School, 4 = Others)', (1, 2, 3, 4)) marital_status = st.selectbox('Marital Status (1 = married, 2 = single, 3 = others)', (1, 2, 3)) age = st.number_input('Age', value = 25, min_value = 21, max_value = 69) pay_1 = st.number_input('Repayment Status in September, 2005 (-2 = Others, -1 = Pay Duly, 1= Payment Delay for One Month, 2 = Payment Delay for Two Months, ... 8 = Payment Delay for Eight Months)', min_value=-2, max_value=8, value=3) pay_2 = st.number_input('Repayment Status in August, 2005 (-2 = Others, -1 = Pay Duly, 1= Payment Delay for One Month, 2 = Payment Delay for Two Months, ... 8 = Payment Delay for Eight Months)', min_value=-2, max_value=7, value=3) pay_3 = st.number_input('Repayment Status in July, 2005 (-2 = Others, -1 = Pay Duly, 1= Payment Delay for One Month, 2 = Payment Delay for Two Months, ... 8 = Payment Delay for Eight Months)', min_value=-2, max_value=7, value=3) pay_4 = st.number_input('Repayment Status in June, 2005 (-2 = Others, -1 = Pay Duly, 1= Payment Delay for One Month, 2 = Payment Delay for Two Months, ... 8 = Payment Delay for Eight Months)', min_value=-2, max_value=8, value=3) pay_5 = st.number_input('Repayment Status in May, 2005 (-2 = Others, -1 = Pay Duly, 1= Payment Delay for One Month, 2 = Payment Delay for Two Months, ... 8 = Payment Delay for Eight Months)', min_value=-2, max_value=7, value=3) pay_6 = st.number_input('Repayment Status in April, 2005 (-2 = Others, -1 = Pay Duly, 1= Payment Delay for One Month, 2 = Payment Delay for Two Months, ... 8 = Payment Delay for Eight Months)', min_value=-2, max_value=7, value=3) bill_amt_1 = st.number_input('Amount of bill statement in September, 2005', value=5000) bill_amt_2 = st.number_input('Amount of bill statement in August, 2005', value=6000) bill_amt_3 = st.number_input('Amount of bill statement in July, 2005', value=7000) bill_amt_4 = st.number_input('Amount of bill statement in June, 2005', value=8000) bill_amt_5 = st.number_input('Amount of bill statement in May, 2005', value=9000) bill_amt_6 = st.number_input('Amount of bill statement in April, 2005', value=10000) pay_amt_1 = st.number_input('Amount of bill statement in September, 2005', value=11000) pay_amt_2 = st.number_input('Amount of bill statement in August, 2005', value=12000) pay_amt_3 = st.number_input('Amount of bill statement in July, 2005', value=13000) pay_amt_4 = st.number_input('Amount of bill statement in June, 2005', value=14000) pay_amt_5 = st.number_input('Amount of bill statement in May, 2005', value=15000) pay_amt_6 = st.number_input('Amount of bill statement in April, 2005', value=16000) # Bikin Submit Button Form submitted = st.form_submit_button() data_inf = { 'limit_balance' : limit_balance, 'sex' : sex, 'education_level' : education_level, 'marital_status' : marital_status, 'age' : age, 'pay_1' : pay_1, 'pay_2' : pay_2, 'pay_3' : pay_3, 'pay_4' : pay_4, 'pay_5' : pay_5, 'pay_6' : pay_6, 'bill_amt_1' : bill_amt_1, 'bill_amt_2' : bill_amt_2, 'bill_amt_3' : bill_amt_3, 'bill_amt_4' : bill_amt_4, 'bill_amt_5' : bill_amt_5, 'bill_amt_6' : bill_amt_6, 'pay_amt_1' : pay_amt_1, 'pay_amt_2' : pay_amt_2, 'pay_amt_3' : pay_amt_3, 'pay_amt_4' : pay_amt_4, 'pay_amt_5' : pay_amt_5, 'pay_amt_6' : pay_amt_6 } data_inf = pd.DataFrame([data_inf]) st.dataframe(data_inf) if submitted: # Prediksi Model y_pred_inf = best_pipe.predict(data_inf) if y_pred_inf == "0": st.write('## Rating : Successfully Paid') else: st.write('## Rating : Failed to pay') if __name__ == '__main__': run()