CoolFace
Apppublic

devinlee14/F1G5_devin_lee_deploy

sourceHugging Faceupdated 3y agoView on Hugging Face
1likes
model.py65 linesDownload Raw Back to root
1import streamlit as st2import pandas as pd3import pickle4 5 6def get_input_data():7    gender_map = {"Male": 1, "Female": 2}8    edu_map = {"Graduate School": 1, "University": 2, "High School": 3, "Others": 4}9    marital_map = {"Married": 1, "Single": 2, "Others": 3}10    pay_option_map = {11        "-2: Unused": -2,12        "-1: Pay duly": -1,13        "0: Revolving credit": 0,14        "1: One month late payment": 1,15        "2: Two months late payment": 2,16        "3: Three months late payment": 3,17        "4: Four months late payment": 4,18        "5: Five months late payment": 5,19        "6: Six months late payment": 6,20        "7: Seven months late payment": 7,21        "8: Eight months late payment": 8,22        "9: Nine months or above late payment": 923    }24 25    limit_balance = st.number_input(label="Input the account's limit balance", min_value=0.0)26    gender = gender_map[st.selectbox(label="Gender", options=list(gender_map.keys()))]27    education = edu_map[st.selectbox(label="Education level", options=list(edu_map.keys()))]28    marital = marital_map[st.selectbox(label="Marital status", options=list(marital_map.keys()))]29    age = st.number_input(label="Age", min_value=18, format='%d')30 31    pay_status, bill_amt, paid_amt = {}, {}, {}32    months = ["September", "August", "July", "June", "May", "April"]33    for month in months:34        pay_status[month] = pay_option_map[st.selectbox(label=f"Repayment status in {month}", options=list(pay_option_map.keys()))]35        bill_amt[month] = st.number_input(label=f"Bill amount in {month}")36        paid_amt[month] = st.number_input(label=f"Paid amount in {month}", min_value=0.0)37 38    return pd.DataFrame({39        "limit_balance": [limit_balance],40        "gender": [gender],41        "education_level": [education],42        "marital_status": [marital],43        "age": [age],44        **{f"pay_{i}": [pay_status[month]] for i, month in enumerate(months, start=1)},45        **{f"bill_amt_{i}": [bill_amt[month]] for i, month in enumerate(months, start=1)},46        **{f"pay_amt_{i}": [paid_amt[month]] for i, month in enumerate(months, start=1)}47    })48 49def display_prediction(data_inf):50    with open("model_svm.pkl", 'rb') as file:51        model = pickle.load(file)52    y_pred_inf = model.predict(data_inf)53    if y_pred_inf == 0:54        st.write("Not Default Payment")55    else:56        st.write("Default Payment")57 58def run():59    st.title("Predict the payment type")60    data_inf = get_input_data()61    st.header("Table Input")62    st.table(data_inf)63    if st.button(label="Predict"):64        display_prediction(data_inf)65