test / app.py
melisagunawan17's picture
Upload app.py
c5353a7 verified
import streamlit as st
import pandas as pd
import joblib
st.header('FTDS Model Deployment')
st.write("""
Created by Maria Melisa Gunawan
Use the sidebar to select input features.
""")
@st.cache
def fetch_data():
df = pd.read_csv('P1G5_Set_1_Melisa.csv')
return df
df = fetch_data()
st.write(df)
st.sidebar.header('User Input Features')
# Fungsi untuk mengambil input dari pengguna
def user_input():
pay_0 = st.sidebar.number_input('Payment Status in September (pay_0)', value=80000)
pay_2 = st.sidebar.number_input('Payment Status in August (pay_2)', value=20000)
pay_3 = st.sidebar.number_input('Payment Status in July (pay_3)', value=3000)
pay_4 = st.sidebar.number_input('Payment Status in June (pay_4)', value=45000)
pay_5 = st.sidebar.number_input('Payment Status in May (pay_5)', value=500)
pay_6 = st.sidebar.number_input('Payment Status in April (pay_6)', value=2500)
limit_balance = st.sidebar.number_input('Credit Limit (limit_balance)', value=90000)
default_payment_next_month = st.sidebar.selectbox('Default Payment Next Month', ['No', 'Yes'])
# Mapping 'No' to 0 and 'Yes' to 1
default_payment_next_month = 1 if default_payment_next_month == 'Yes' else 0
data = {
'pay_0': pay_0,
'pay_2': pay_2,
'pay_3': pay_3,
'pay_4': pay_4,
'pay_5': pay_5,
'pay_6': pay_6,
'limit_balance': limit_balance,
'default_payment_next_month': default_payment_next_month
}
features = pd.DataFrame(data, index=[0])
return features
# Memuat model yang telah di-train
load_model = joblib.load("credit_card_default_model.pkl")
# Menjalankan aplikasi Streamlit
def main():
st.title('Default Payment Next Month')
# Mengambil input dari pengguna
input_features = user_input()
# Menampilkan input pengguna
st.subheader('User Input')
st.write(input_features)
# Melakukan prediksi menggunakan model
prediction = load_model.predict(input_features)
if prediction == 1:
prediction = 'Default'
else:
prediction = 'Not Default'
# Menampilkan hasil prediksi
st.subheader('Prediction')
st.write(f'Based on user input, the model predicts: {prediction}')
if __name__ == '__main__':
main()