File size: 3,207 Bytes
c86fefb
 
 
 
248a789
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
c86fefb
 
 
 
 
 
 
 
248a789
44278a2
c86fefb
44278a2
c86fefb
44278a2
ab445d2
44278a2
c86fefb
44278a2
c86fefb
 
 
 
f16a8ff
 
c86fefb
f16a8ff
 
 
 
c86fefb
248a789
f16a8ff
c86fefb
 
7011f7e
5064702
c86fefb
 
248a789
 
c86fefb
 
 
 
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
import joblib
import pandas as pd
import streamlit as st 

Blood_DICT = {'126/83':1,
            '125/80': 2,
            '140/90': 3,
            '120/80': 4,
            '132/87': 5,
            '130/86': 6,
            '117/76': 7,
            '118/76': 8,
            '128/85': 9,
            '131/86': 10,
            '128/84': 11,
            '115/75': 12,
            '135/88': 13,
            '129/84': 14,
            '130/85': 15,
            '115/78': 16,
            '119/77': 17,
            '121/79': 18,
            '125/82': 19,
            '135/90': 20,
            '122/80': 21,
            '142/92': 22,
            '140/95': 23,
            '139/91': 24,
            '118/75': 25,   
            }

model = joblib.load('rf_n1.joblib')
unique_values = joblib.load('unique_values_n1.joblib')
unique_Gender =  unique_values["Gender"]    
unique_occupation =  unique_values["Occupation"]
unique_ฺBMI = unique_values["BMI Category"]
unique_Blood =  unique_values["Blood Pressure"]

def main():
    st.title("Sleeping Health")

    with st.form("questionaire"):
        Gender = st.selectbox("Gender", unique_Gender)
        age = st.slider("Age", min_value=27, max_value=59)
        occupation = st.selectbox("Occupation", unique_occupation)
        Sleep_Duration = st.slider("Sleep Duration", min_value=5.8, max_value=8.5)
        Quality_of_Sleep = st.slider("Quality of Sleep", min_value=1, max_value=10)
        Physical_Activity_Level = st.slider("Physical Activity Level", min_value=30, max_value=90)
        Stress_Level= st.slider("Stress Level", min_value=1, max_value=10)
        BMI_Category = st.selectbox("RMI Category", unique_ฺBMI)
        Blood_Pressure = st.selectbox("Blood Pressure", unique_Blood)
        Heart_Rate = st.slider("Heart Rate", min_value=65, max_value=86)
        Daily_Steps = st.slider("Daily Steps", min_value=3000, max_value=10000)

        clicked = st.form_submit_button("Predict Sleep Health")
        if clicked:
            result=model.predict(pd.DataFrame({"Gender": [Gender],
                                               "Age": [age],
                                               "Occupation": [occupation],
                                               "Sleep Duration": [Sleep_Duration],
                                               "Quality of Sleep": [Quality_of_Sleep],
                                               "Physical Activity Level": [Physical_Activity_Level],
                                               "Stress Level":[Stress_Level],
                                               "BMI Category": [BMI_Category],
                                               "Blood Pressure": [Blood_DICT[Blood_Pressure]],
                                               "Heart Rate": [Heart_Rate],
                                               "Daily Steps": [Daily_Steps]
                                               }))
            if result[0] == 1:
                result_message = "None"
            elif result[0] == 2:
                result_message = "Sleep Apnea"
            elif result[0] == 3:
                result_message = "Insomnia"
            st.success(result_message)

if __name__=='__main__':
    main()