Credit_Card_Default / prediction.py
darly9991's picture
Upload 11 files
ae32b31 verified
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()