File size: 3,947 Bytes
a8708a9 5da6d29 1f8ac24 a8708a9 1f8ac24 a8708a9 1f8ac24 a8708a9 95b8f4d 9762c2c a8708a9 |
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 |
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,
}
Gender_DICT = {'Male':1,
'Female': 2,}
Occupation_DICT = {'Software Engineer':1,
'Doctor': 2,
'Sales Representative': 3,
'Teacher': 4,
'Nurse': 5,
'Engineer': 6,
'Accountant': 7,
'Scientist': 8,
'Lawyer': 9,
'Salesperson': 10,
'Manager': 11,}
BMI_DICT = {'Overweight':1,
'Normal': 2,
'Obese': 3,
'Normal Weight': 4,}
model = joblib.load('rf_n3.joblib')
unique_values = joblib.load('unique_values_n3.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("BMI 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_sleep = st.form_submit_button("Predict Sleep Health")
if clicked_sleep:
result = model.predict(pd.DataFrame({"Gender": [Gender_DICT[Gender]],
"Age": [age],
"Occupation": [Occupation_DICT[occupation]],
"Sleep Duration": [Sleep_Duration],
"Quality of Sleep": [Quality_of_Sleep],
"Physical Activity Level": [Physical_Activity_Level],
"Stress Level": [Stress_Level],
"BMI Category": [BMI_DICT[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"
else:
result_message = None # กำหนดให้ result_message เป็น None เมื่อไม่ตรงกับเงื่อนไขที่กำหนด
if result_message is not None:
st.success(result_message)
if __name__=='__main__':
main()
|