| import joblib | |
| import pandas as pd | |
| import streamlit as st | |
| model = joblib.load('rf.joblib') | |
| unique_values = joblib.load('unique_values1.joblib') | |
| unique_sex = 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_sex) | |
| age = st.slider("Age", min_value=1, max_value=100) | |
| occupation = st.selectbox("Occupation", unique_occupation) | |
| Sleep_Duration = st.slider("Sleep Duration", min_value=0, max_value=24) | |
| Quality_of_Sleep = st.slider("Quality of Sleep", min_value=1, max_value=10) | |
| Physical_Activity_Level = st.slider("Quality of Sleep", min_value=0, max_value=1440) | |
| BMI_Category = st.selectbox("ฺBMI Category", unique_ฺBMI) | |
| Blood_Pressure = st.selectbox("Blood Pressure", unique_Blood) | |
| Heart_Rate = st.slider("Heart Rate", min_value=60, max_value=100) | |
| 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({"age": [age], | |
| "Gender": [Gender], | |
| "Occupation": [occupation], | |
| "Sleep Duration (hours)": [Sleep_Duration], | |
| "Quality of Sleep (scale: 1-10)": [Quality_of_Sleep], | |
| "Physical Activity Level (minutes/day)": [Physical_Activity_Level], | |
| "BMI Category": [BMI_Category], | |
| "Blood Pressure (systolic/diastolic)": [Blood_Pressure], | |
| "Heart Rate (bpm)": [Heart_Rate], | |
| "Daily Steps": [Daily_Steps] | |
| })) | |
| if result[0] == 0: | |
| result_message = "No Sleep Disorder" | |
| elif result[0] == 1: | |
| result_message = "Insomnia" | |
| elif result[0] == 2: | |
| result_message = "Sleep Apnea" | |
| st.success(result_message) | |
| if __name__=='__main__': | |
| main() | |