File size: 4,516 Bytes
e5258c2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
627b3ce
 
e5258c2
627b3ce
a02cea9
 
 
 
e5258c2
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
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()