Spaces:
Sleeping
Sleeping
import streamlit as st | |
import pickle | |
import json | |
import pandas as pd | |
import numpy as np | |
with open("list_num_skew_columns.txt", 'r') as file_1: | |
list_num_skew_columns = json.load(file_1) | |
with open("list_cat_nom_columns.txt", "r") as file_2: | |
num_col_skew = json.load(file_2) | |
with open("scaler_minmax.pkl", "rb") as file_3: | |
model_scaler = pickle.load(file_3) | |
with open("encoder_n.pkl", "rb") as file_4: | |
model_nominal_encoder = pickle.load(file_4) | |
with open("knn_gridcv_best.pkl", "rb") as file_5: | |
knn_gridcv_best = pickle.load(file_5) | |
def run(): | |
# create form | |
with st.form("form_payment"): | |
age = st.number_input("age", | |
min_value= 20, | |
max_value= 70, | |
value=30, | |
step=2) | |
limit_balance = st.slider("limit_balance",0,800000) | |
bill_amt_1 = st.slider("bill_amt_1",-100000,600000) | |
bill_amt_2 = st.slider("bill_amt_2",-100000,600000) | |
bill_amt_3 = st.slider("bill_amt_3",-100000,600000) | |
bill_amt_4 = st.slider("bill_amt_4",-100000,600000) | |
bill_amt_5 = st.slider("bill_amt_5",-100000,600000) | |
bill_amt_6 = st.slider("bill_amt_6",-100000,600000) | |
st.markdown("---") | |
pay_amt_1 = st.slider("pay_amt_1",-0,1000000) | |
pay_amt_2 = st.slider("pay_amt_2",-0,1000000) | |
pay_amt_3 = st.slider("pay_amt_3",-0,1000000) | |
pay_amt_4 = st.slider("pay_amt_4",-0,1000000) | |
pay_amt_5 = st.slider("pay_amt_5",-0,1000000) | |
pay_amt_6 = st.slider("pay_amt_6",-0,1000000) | |
st.markdown("---") | |
sex = st.radio("sex",("1","2"),help="1 for male,2 for female",index= 0) | |
education_level = st.radio("education level",("0","1","2","3","4","5","6"),index= 0) | |
marital_status = st.radio("marital_status",("0","1","2","3"),index= 0) | |
st.markdown("---") | |
pay_0 = st.radio("pay_0",("-2","-1","0","1","2","3","4","5","6","7","8"),index= 0) | |
pay_2 = st.radio("pay_2",("-2","-1","0","1","2","3","4","5","6","7","8"),index= 0) | |
pay_3 = st.radio("pay_3",("-2","-1","0","1","2","3","4","5","6","7","8"),index= 0) | |
pay_4 = st.radio("pay_4",("-2","-1","0","1","2","3","4","5","6","7","8"),index= 0) | |
pay_5 = st.radio("pay_5",("-2","-1","0","1","2","3","4","5","6","7","8"),index= 0) | |
pay_6 = st.radio("pay_6",("-2","-1","0","1","2","3","4","5","6","7","8"),index= 0) | |
st.markdown("---") | |
submitted = st.form_submit_button("predict") | |
data_inf = { | |
"limit_balance" : limit_balance, | |
"sex" : sex, | |
"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, | |
"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: | |
data_inf_num_skew = data_inf[list_num_skew_columns] | |
data_inf_cat_nom = data_inf[num_col_skew] | |
data_inf_num_scal = model_scaler.transform(data_inf_num_skew) | |
data_inf_cat_nom_enc = model_nominal_encoder.transform(data_inf_cat_nom) | |
data_inf_final = np.concatenate([data_inf_num_scal,data_inf_cat_nom_enc],axis=1) | |
y_predict_inf = knn_gridcv_best.predict(data_inf_final) | |
st.write("# Default_payment: ",str(int(y_inf_pred))) | |
if __name__=="__main__": | |
run() |