Spaces:
Sleeping
Sleeping
import streamlit as st | |
import pandas as pd | |
import numpy as np | |
import joblib, pickle | |
import json | |
#Load All Files | |
#load model dan files yang sudah di save pada framing | |
# with open('model_rf.pkl', 'rb') as file_1: | |
# model_rf = pickle.load(file_1) | |
# # model_patch = 'model_rf.pkl' | |
# model_rf = joblib.load(model_patch) | |
# with open('list_num_cols.txt', 'r') as file_1: | |
# list_num_cols = json.load(file_1) | |
# with open('list_cat_cols.txt', 'r') as file_2: | |
# list_cat_cols = json.load(file_2) | |
with open('model_rf.pkl', 'rb') as file3: | |
loaded_model = pickle.load(file3) | |
def run(): | |
with st.form('deposito_simulation'): | |
#Field Umur | |
Age = st.number_input('Age', min_value = 17, max_value = 75, value = 25, step = 1, help = 'Customers Age') | |
#Field Nama | |
Job = st.selectbox('Job', ('admin.', 'technician', 'services','management','retired','blue-collar','unemployed','entrepreneur','housemaid','unknown','self-employed','student'), index = 1) | |
#Marital Status | |
Marital = st.selectbox('Marital Status', ('married', 'single', 'divorced'), index = 1) | |
#Education Status | |
Education = st.selectbox('Education', ('secondary', 'tertiary', 'primary', 'unknown'), index = 1) | |
#Default Status | |
Default = st.selectbox('Default', ('no', 'yes'), index = 1, help = 'has credit in default?') | |
#Field Pace Total | |
Balance = st.number_input('Balance', min_value = 0, max_value=999999, value = 50) | |
#Housing Status | |
Housing = st.selectbox('Housing', ('yes', 'no'), index = 1, help = 'has housing loan?') | |
#Loan Status | |
Loan = st.selectbox('Loan', ('no', 'yes'), index = 1, help = 'has personal loan?') | |
#Contact Status | |
Contact = st.selectbox('Contact', ('unknown', 'cellular', 'telephone'), index = 1) | |
#Day | |
Day = st.number_input('Day', min_value = 1, max_value=31, value = 1, help = 'last contact day of the month') | |
#Month | |
Month = st.selectbox('Month', ('may', 'jun', 'jul', 'aug', 'oct', 'nov', 'dec', 'jan', 'feb', 'mar', 'apr', 'sep'), index = 1, help = 'last contact month of year') | |
#Duration | |
Duration = st.number_input('Duration', min_value = 0, max_value=999999, value = 50, help = 'last contact duration, in seconds') | |
#Day | |
Campaign = st.number_input('Campaign', min_value = 1, max_value=100, value = 1, help = 'number of contacts performed during this campaign and for this client') | |
#pDyas | |
Pdays = st.number_input('Pdays', min_value = -1 , max_value=9999999, value = 0, help = 'number of days that passed by after the client was last contacted from a previous campaign (numeric, -1 means client was not previously contacted') | |
#Previous | |
Previous = st.number_input('Previous', min_value = 0, max_value=100, value = 0, help = 'previous: number of contacts performed before this campaign and for this client') | |
#Poutcome Status | |
Poutcome = st.selectbox('P Outcome', ('unknown', 'other', 'failure', 'success'), index = 1, help = 'outcome of the previous marketing campaign') | |
#bikin submit button | |
submitted = st.form_submit_button('Predict') | |
#Inference | |
data_inf = { | |
'age' : Age, | |
'job' : Job, | |
'marital' : Marital, | |
'education' : Education, | |
'default' : Default, | |
'balance' : Balance, | |
'housing' :Housing, | |
'loan': Loan, | |
'contact' : Contact, | |
'day' :Day, | |
'month' :Month, | |
'duration':Duration, | |
'campaign': Campaign, | |
'pdays':Pdays, | |
'previous':Previous, | |
'poutcome': Poutcome, | |
} | |
data_inf = pd.DataFrame([data_inf]) | |
st.dataframe(data_inf) | |
#Logic ketika predic button ditekan | |
if submitted: | |
# Predict using loaded model | |
predictions = loaded_model.predict(data_inf) | |
# Menampilkan data input | |
st.write('## Data Input:') | |
st.dataframe(data_inf) | |
# Menampilkan hasil prediksi | |
st.write('## Hasil Prediksi:') | |
st.write('Deposit:', int(predictions[0])) | |
# Menampilkan pesan berdasarkan hasil prediksi | |
if predictions[0] == 0: | |
st.write("Nasabah belum berlangganan deposito berjangka.") | |
else: | |
st.write("Nasabah telah berlangganan deposito berjangka.") | |
if __name__ == '__main__': | |
run() |