test / deployment.py
melisagunawan17's picture
Upload 6 files
6cc495b 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()