Spaces:
Sleeping
Sleeping
Upload 7 files
Browse files- app.py +102 -0
- encoder_n.pkl +3 -0
- knn_gridcv_best.pkl +3 -0
- list_cat_nom_columns.txt +1 -0
- list_num_skew_columns.txt +1 -0
- requirements.txt +6 -0
- scaler_minmax.pkl +3 -0
app.py
ADDED
|
@@ -0,0 +1,102 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import streamlit as st
|
| 2 |
+
import pickle
|
| 3 |
+
import json
|
| 4 |
+
import pandas as pd
|
| 5 |
+
import numpy as np
|
| 6 |
+
|
| 7 |
+
with open("list_num_skew_columns.txt", 'r') as file_1:
|
| 8 |
+
list_num_skew_columns = json.load(file_1)
|
| 9 |
+
|
| 10 |
+
with open("list_cat_nom_columns.txt", "r") as file_2:
|
| 11 |
+
num_col_skew = json.load(file_2)
|
| 12 |
+
|
| 13 |
+
with open("scaler_minmax.pkl", "rb") as file_3:
|
| 14 |
+
model_scaler = pickle.load(file_3)
|
| 15 |
+
|
| 16 |
+
with open("encoder_n.pkl", "rb") as file_4:
|
| 17 |
+
model_nominal_encoder = pickle.load(file_4)
|
| 18 |
+
|
| 19 |
+
with open("knn_gridcv_best.pkl", "rb") as file_5:
|
| 20 |
+
knn_gridcv_best = pickle.load(file_5)
|
| 21 |
+
|
| 22 |
+
def run():
|
| 23 |
+
# create form
|
| 24 |
+
with st.form("form_payment"):
|
| 25 |
+
age = st.number_input("age",
|
| 26 |
+
min_value= 20,
|
| 27 |
+
max_value= 70,
|
| 28 |
+
value=30,
|
| 29 |
+
step=2)
|
| 30 |
+
|
| 31 |
+
limit_balance = st.slider("limit_balance",0,800000)
|
| 32 |
+
bill_amt_1 = st.slider("bill_amt_1",-100000,600000)
|
| 33 |
+
bill_amt_2 = st.slider("bill_amt_2",-100000,600000)
|
| 34 |
+
bill_amt_3 = st.slider("bill_amt_3",-100000,600000)
|
| 35 |
+
bill_amt_4 = st.slider("bill_amt_4",-100000,600000)
|
| 36 |
+
bill_amt_5 = st.slider("bill_amt_5",-100000,600000)
|
| 37 |
+
bill_amt_6 = st.slider("bill_amt_6",-100000,600000)
|
| 38 |
+
st.markdown("---")
|
| 39 |
+
pay_amt_1 = st.slider("pay_amt_1",-0,1000000)
|
| 40 |
+
pay_amt_2 = st.slider("pay_amt_2",-0,1000000)
|
| 41 |
+
pay_amt_3 = st.slider("pay_amt_3",-0,1000000)
|
| 42 |
+
pay_amt_4 = st.slider("pay_amt_4",-0,1000000)
|
| 43 |
+
pay_amt_5 = st.slider("pay_amt_5",-0,1000000)
|
| 44 |
+
pay_amt_6 = st.slider("pay_amt_6",-0,1000000)
|
| 45 |
+
|
| 46 |
+
st.markdown("---")
|
| 47 |
+
sex = st.radio("sex",("1","2"),help="1 for male,2 for female",index= 0)
|
| 48 |
+
education_level = st.radio("education level",("0","1","2","3","4","5","6"),index= 0)
|
| 49 |
+
marital_status = st.radio("marital_status",("0","1","2","3"),index= 0)
|
| 50 |
+
|
| 51 |
+
st.markdown("---")
|
| 52 |
+
pay_0 = st.radio("pay_0",("-2","-1","0","1","2","3","4","5","6","7","8"),index= 0)
|
| 53 |
+
pay_2 = st.radio("pay_2",("-2","-1","0","1","2","3","4","5","6","7","8"),index= 0)
|
| 54 |
+
pay_3 = st.radio("pay_3",("-2","-1","0","1","2","3","4","5","6","7","8"),index= 0)
|
| 55 |
+
pay_4 = st.radio("pay_4",("-2","-1","0","1","2","3","4","5","6","7","8"),index= 0)
|
| 56 |
+
pay_5 = st.radio("pay_5",("-2","-1","0","1","2","3","4","5","6","7","8"),index= 0)
|
| 57 |
+
pay_6 = st.radio("pay_6",("-2","-1","0","1","2","3","4","5","6","7","8"),index= 0)
|
| 58 |
+
st.markdown("---")
|
| 59 |
+
|
| 60 |
+
submitted = st.form_submit_button("predict")
|
| 61 |
+
|
| 62 |
+
data_inf = {
|
| 63 |
+
"limit_balance" : limit_balance,
|
| 64 |
+
"sex" : sex,
|
| 65 |
+
"education_level" : education_level,
|
| 66 |
+
"marital_status" : marital_status,
|
| 67 |
+
"age" : age,
|
| 68 |
+
"pay_0" : pay_0,
|
| 69 |
+
"pay_2" : pay_2,
|
| 70 |
+
"pay_3" : pay_3,
|
| 71 |
+
"pay_4" : pay_4,
|
| 72 |
+
"pay_5" : pay_5,
|
| 73 |
+
"pay_6" : pay_6,
|
| 74 |
+
"bill_amt_1" : bill_amt_1,
|
| 75 |
+
"bill_amt_2" : bill_amt_2,
|
| 76 |
+
"bill_amt_3" : bill_amt_3,
|
| 77 |
+
"bill_amt_4" : bill_amt_4,
|
| 78 |
+
"bill_amt_5" : bill_amt_5,
|
| 79 |
+
"bill_amt_6" : bill_amt_6,
|
| 80 |
+
"pay_amt_1" : pay_amt_1,
|
| 81 |
+
"pay_amt_2" : pay_amt_2,
|
| 82 |
+
"pay_amt_3" : pay_amt_3,
|
| 83 |
+
"pay_amt_4" : pay_amt_4,
|
| 84 |
+
"pay_amt_5" : pay_amt_5,
|
| 85 |
+
"pay_amt_6" : pay_amt_6
|
| 86 |
+
}
|
| 87 |
+
|
| 88 |
+
data_inf = pd.DataFrame([data_inf])
|
| 89 |
+
st.dataframe(data_inf)
|
| 90 |
+
|
| 91 |
+
if submitted:
|
| 92 |
+
data_inf_num_skew = data_inf[list_num_skew_columns]
|
| 93 |
+
data_inf_cat_nom = data_inf[num_col_skew]
|
| 94 |
+
data_inf_num_scal = model_scaler.transform(data_inf_num_skew)
|
| 95 |
+
data_inf_cat_nom_enc = model_nominal_encoder.transform(data_inf_cat_nom)
|
| 96 |
+
data_inf_final = np.concatenate([data_inf_num_scal,data_inf_cat_nom_enc],axis=1)
|
| 97 |
+
y_predict_inf = knn_gridcv_best.predict(data_inf_final)
|
| 98 |
+
|
| 99 |
+
st.write("# Default_payment: ",str(int(y_inf_pred)))
|
| 100 |
+
|
| 101 |
+
if __name__=="__main__":
|
| 102 |
+
run()
|
encoder_n.pkl
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:cd3a1dd87d75d1e40721edeb9e18c71d274666715e72f41a084d604eb70adf3b
|
| 3 |
+
size 1281
|
knn_gridcv_best.pkl
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:07180f84b3c0f168bab0d5ec66fa59629515fadd3157971b45326931728458ee
|
| 3 |
+
size 1233587
|
list_cat_nom_columns.txt
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
["pay_0", "pay_2", "pay_3", "pay_4", "pay_5", "pay_6"]
|
list_num_skew_columns.txt
ADDED
|
@@ -0,0 +1 @@
|
|
|
|
|
|
|
| 1 |
+
["limit_balance", "pay_amt_1", "pay_amt_2", "pay_amt_3", "pay_amt_4", "pay_amt_5", "pay_amt_6"]
|
requirements.txt
ADDED
|
@@ -0,0 +1,6 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
streamlit
|
| 2 |
+
pandas
|
| 3 |
+
numpy
|
| 4 |
+
matplotlib
|
| 5 |
+
seaborn
|
| 6 |
+
scikit-learn
|
scaler_minmax.pkl
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
version https://git-lfs.github.com/spec/v1
|
| 2 |
+
oid sha256:0897120071f4f620b633a3a8b8e7f55ef8caec6dd963fbb5f1381585df73de04
|
| 3 |
+
size 936
|