Spaces:
Sleeping
Sleeping
# learn stremlit, this one for the predictions | |
#import libs | |
import streamlit as st | |
import pandas as pd | |
import pickle | |
#open related files/load files | |
with open('scaler.pkl', 'rb') as file_1: | |
scaler = pickle.load(file_1) | |
with open('model.pkl', 'rb') as file_2: | |
model = pickle.load(file_2) | |
def run(): | |
#Make the input form for the user to input data? | |
with st.form('Form_CreditDefaultPredictor'): | |
#Field limit balance | |
limit_balance = st.number_input('limit_balance',min_value=10000, max_value=1000000) | |
#Field age | |
age = st.number_input('age', min_value= 21, max_value = 70, step = 1, help = 'Age of borrower') | |
#Field education level | |
education_level = st.slider('education_level', 1, 4, 2) | |
st.write('#### - 1 is graduate school') | |
st.write('#### - 2 is university') | |
st.write('#### - 3 is high school') | |
st.write('#### - 4 is others') | |
#Field marital status | |
marital_status = st.slider('marital_status', 1, 3, 2) | |
st.write('#### - 1 is married') | |
st.write('#### - 2 is single') | |
st.write('#### - 3 is others') | |
#Field pay_0 | |
pay_0 = st.slider('pay_0', -2, 9, -1 ) | |
st.write('### latest month payment status') | |
st.write('#### - -2: pay early') | |
st.write('#### - -1 = pay on deadline') | |
st.write('#### - 0 : pay delayed for 0 month') | |
st.write('#### - 1 = payment delayed for one month') | |
st.write('#### - 2 = payment delayed for two months') | |
st.write('#### ...') | |
st.write('#### - 8 = payment delayed for 8 months') | |
st.write('#### - 9 = payment delayed for 9 months') | |
#Field pay_2 | |
pay_2 = st.slider('pay_1', -2, 9, -1, key=2 ) | |
st.write('#### 1 months before latest month payment status, same scale as above') | |
#Field pay_3 | |
pay_3 = st.slider('pay_2', -2, 9, -1, key=3 ) | |
st.write('#### 2 months before latest month payment status, same scale as above') | |
#Field pay_4 | |
pay_4 = st.slider('pay_3', -2, 9, -1, key=4 ) | |
st.write('#### 3 months before latest month payment status, same scale as above') | |
#Field pay_5 | |
pay_5 = st.slider('pay_4', -2, 9, -1, key=5 ) | |
st.write('#### 4 months before latest month payment status, same scale as above') | |
#Field pay_6 | |
pay_6 = st.slider('pay_5', -2, 9, -1, key=6 ) | |
st.write('#### 5 months before latest month payment status, same scale as above') | |
# bikin batasan | |
st.markdown('---------') | |
#bikin submit button | |
submitted = st.form_submit_button('Predict!') | |
#inference/satuin data supaya bisa masuk model | |
# nama col ('Name',etc) harus sama dengan di model | |
# keys dari col harus sama dengan nama variable di form streamlit | |
data_inf = { | |
'limit_balance' : limit_balance, | |
'education_level' : education_level, | |
'marital_status' : marital_status, | |
'age': age, | |
'pay_0' : pay_0, | |
'pay_2' : pay_2, | |
'pay_3' : pay_3, | |
'pay_4' : pay_4, | |
'pay_5' : pay_5, | |
'pay_6' : pay_6, | |
} | |
#turn to dataframe for model | |
data_inf = pd.DataFrame([data_inf]) | |
#aslo show the input from user | |
st.dataframe(data_inf) | |
#what happen when predict button is pushed/clicked: | |
if submitted: #ketika si submitted itu punya value, maka | |
#scale | |
data_inf_scaled = scaler.transform(data_inf) | |
# predict using linear reg model | |
y_pred_inf = model.predict(data_inf_scaled) | |
#kasih tau hasilnya apa | |
st.write('## Prediction of whether the borrower will default : ',str(int(y_pred_inf))) | |
st.write('###1 = will default, 0 = will not default') | |
if __name__ == '__main__': | |
run() |