Spaces:
Sleeping
Sleeping
import streamlit as st | |
import pandas as pd | |
import pickle | |
# Load Best Model | |
with open ('best_model_xgb.pkl', 'rb') as xgb_file: | |
model_xgb = pickle.load(xgb_file) | |
def run(): | |
st.title('Klasifikasi XGBoost pada Telemarketing Deposito') | |
with st.form('telemarketing_deposit'): | |
st.write('### Masukkan Data Klien') | |
# Job | |
job_options = ['bluecollar', 'management', 'technician', 'admin', 'services', 'retired', 'self-employed', 'entrepreneur', 'unemployed', 'housemaid', 'student'] | |
job = st.selectbox('Pekerjaan', job_options) | |
# Marital status | |
marital_status_options = ['single', 'divorced', 'married'] | |
marital_status = st.radio('Status Pernikahan', marital_status_options) | |
# Education | |
education_options = ['primary', 'secondary', 'tertiary'] | |
education = st.radio('Pendidikan', education_options) | |
# Balance | |
balance = st.number_input('Saldo Rata-rata (€)', min_value=0) | |
# Housing loan | |
housing_loan_options = ['yes', 'no'] | |
housing_loan = st.checkbox('Punya Pinjaman Rumah?', housing_loan_options) | |
# Personal loan | |
personal_loan_options = ['yes', 'no'] | |
personal_loan = st.checkbox('Punya Pinjaman Pribadi?', personal_loan_options) | |
# Contact method | |
contact_options = ['cellular', 'telephone', 'unknown'] | |
contact = st.selectbox('Metode Kontak', contact_options) | |
# Duration | |
duration = st.slider('Durasi Kontak Terakhir (detik)', 0, 3600, 1800) | |
# Campaign | |
campaign = st.slider('Jumlah Upaya Kontak Selama Campaign', 1, 30, 10) | |
# Pdays | |
pdays = st.slider('Jumlah Hari Terakhir Dihubungi (Jika -1, belum pernah)', -1, 20, 10) | |
# Previous | |
previous = st.slider('Jumlah Upaya Kontak Sebelum Campaign', 0, 30, 5) | |
# Poutcome | |
poutcome_options = ['success', 'failure', 'unknown', 'other'] | |
poutcome = st.selectbox('Hasil Campaign Sebelumnya', poutcome_options) | |
submit_button = st.form_submit_button('Prediksi') | |
housing_loan = 'yes' if housing_loan else 'no' | |
personal_loan = 'yes' if personal_loan else 'no' | |
input_data = pd.DataFrame({ | |
'job': [job], | |
'marital': [marital_status], | |
'education': [education], | |
'balance': [balance], | |
'housing': [housing_loan], | |
'loan': [personal_loan], | |
'contact': [contact], | |
'duration': [duration], | |
'campaign': [campaign], | |
'pdays': [pdays], | |
'previous': [previous], | |
'poutcome': [poutcome] | |
}) | |
st.dataframe(input_data) | |
if submit_button: | |
num_features = input_data[['balance', 'duration', 'campaign', 'pdays', 'previous']] | |
cat_features = input_data[['job', 'marital', 'contact', 'poutcome', 'housing', 'loan']] | |
cat_ordinal_feature = input_data[['education']] | |
y_pred = model_xgb.predict(input_data) | |
st.write('Klasifikasi: ', y_pred) | |
if __name__ == '__main__': | |
run() |