Milestone2-p1 / Prediction.py
Azrieldr
main commit3
a02cea9
import streamlit as st
import pickle
import json
import pandas as pd
# from sklearn.pipeline import make_pipeline
# from sklearn.preprocessing import StandardScaler, OneHotEncoder
# from sklearn.svm import SVC
# from sklearn.linear_model import LogisticRegression
# from sklearn.tree import DecisionTreeClassifier
# from sklearn.ensemble import RandomForestClassifier
with open('svc_model.pkl', 'rb') as f:
pipesvc = pickle.load(f)
with open('logreg_model.pkl', 'rb') as f:
pipeLR = pickle.load(f)
with open('dt_model.pkl', 'rb') as f:
pipeDT = pickle.load(f)
with open('rf_model.pkl', 'rb') as f:
pipeRF = pickle.load(f)
with open('preprocessor.pkl', 'rb') as f:
preprocessor = pickle.load(f)
with open('le.pkl', 'rb') as f:
Le = pickle.load(f)
with open('num_cols.json', 'r') as f:
numerical_cols = json.load(f)
with open('cat_cols.json', 'r') as f:
categorical_cols = json.load(f)
def run():
with st.form(key='form_prediksi'):
name = st.text_input('Nama', value='')
sex = st.radio('Kelamin', ('Perempuan', 'Laki-Laki'))
if sex=='Laki-Laki':
sexnum='M'
else: sexnum='F'
age= st.number_input('Umur', min_value=16, max_value=80, value=50, step=1)
smoking = st.radio('Apakah merokok?', ('Ya', 'Tidak'))
if smoking=='Ya':
smokingnum=2
else: smokingnum=1
Yelfing= st.radio('Apakah memiliki Yellow Finger?', ('Ya', 'Tidak'))
if Yelfing=='Ya':
yelfingnum=2
else: yelfingnum=1
anxeity = st.radio('Apakah memiliki Anxeity?', ('Ya', 'Tidak'))
if anxeity == 'Ya':
anxeitynum=2
else: anxeitynum=1
peer_pressure = st.radio('Apakah terdapat peer pressure?', ('Ya', 'Tidak'))
if peer_pressure=='Ya':
peer_pressurenum=2
else: peer_pressurenum=1
Crondis= st.radio('Apakah memiliki penyakit Kronis?', ('Ya', 'Tidak'))
if Crondis=='Ya':
crondisnum=2
else: crondisnum=1
Fatigue= st.radio('Apakah mudah capai?', ('Ya', 'Tidak'))
if Fatigue=='Ya':
fatiguenum=2
else: fatiguenum=1
alergi= st.radio('Apakah memiliki alergi?', ('Ya', 'Tidak'))
if alergi=='Ya':
alerginum=2
else: alerginum=1
mengi= st.radio('Apakah mengidap mengi?', ('Ya', 'Tidak'))
if mengi=='Ya':
menginum=2
else: menginum=1
Alkohol= st.radio('Apakah mengkonsumsi alkohol?', ('Ya', 'Tidak'))
if Alkohol=='Ya':
alkoholnum=2
else: alkoholnum=1
batuk= st.radio('Apakah ada batuk?', ('Ya', 'Tidak'))
if batuk=='Ya':
batuknum=2
else: batuknum=1
sesak= st.radio('Apakah terdapat sesak?', ('Ya', 'Tidak'))
if sesak=='Ya':
sesaknum=2
else: sesaknum=1
sutel= st.radio('Apakah susah untuk menalan?', ('Ya', 'Tidak'))
if sutel=='Ya':
sutelnum=2
else: sutelnum=1
sakda= st.radio('Apakah terdapat sakit di bagian dada?', ('Ya', 'Tidak'))
if sakda=='Ya':
sakdanum=2
else: sakdanum=1
submitted = st.form_submit_button('Predict')
data_inf = {'GENDER':sexnum,
'AGE': age,
'SMOKING':smokingnum,
'YELLOW_FINGERS':yelfingnum,
'ANXIETY':anxeitynum,
'PEER_PRESSURE':peer_pressurenum,
'CHRONIC DISEASE':crondisnum,
'FATIGUE ':fatiguenum,
'ALLERGY ':alerginum,
'WHEEZING':menginum,
'ALCOHOL CONSUMING':alkoholnum,
'COUGHING':batuknum,
'SHORTNESS OF BREATH':sesaknum,
'SWALLOWING DIFFICULTY':sutelnum,
'CHEST PAIN':sakdanum
}
if submitted:
data_inf = pd.DataFrame([data_inf])
# y_pred_inf_rf = pipeRF.predict(data_inf)
# y_pred_inf_DT = pipeDT.predict(data_inf)
y_pred_inf_LR = pipeLR.predict(data_inf)
# y_pred_inf_SVC = pipesvc.predict(data_inf)
# st.write('# hasil inf dari Randomforest', Le.inverse_transform(y_pred_inf_rf))
# st.write('# hasil inf dari Decision Tree', Le.inverse_transform(y_pred_inf_DT))
# st.write('# hasil inf dari SVC', Le.inverse_transform(y_pred_inf_SVC))
st.write('# hasil inf dari Logistic Regression', Le.inverse_transform(y_pred_inf_LR))
if __name__== '__main__':
run()