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() |