Spaces:
Sleeping
Sleeping
import streamlit as st | |
import pandas as pd | |
import joblib # Import joblib for loading the classifier | |
# Define a dictionary to map user-friendly labels to integers | |
labels_to_int = { | |
"Female": 0, | |
"Male": 1, | |
"Yes": 1, | |
"No": 0, | |
"Never worked": 0, | |
"Children": 1, | |
"Government job": 2, | |
"Self-employed": 3, | |
"Private": 4, | |
"Urban": 0, | |
"Rural": 1, | |
"No Stroke": 0, | |
"Stroke": 1, | |
"ever had": 1, | |
"never had": 0, | |
"married": 1, | |
"single": 0, | |
"never smoked": 0, | |
"smokes": 1 | |
} | |
st.title("Stroke Detection") | |
sex = st.radio("Sex", ["Female", "Male"]) | |
age = st.number_input("Age", min_value=0) | |
hypertension = st.selectbox("Do you have hypertension?", ["No", "Yes"]) | |
heart_disease = st.selectbox("Do you have heart disease?", ["No", "Yes"]) | |
ever_married = st.selectbox("Have you ever been married?", ["No", "Yes"]) | |
work_type = st.selectbox("What is your work type?", ["Never worked", "Children", "Government job", "Self-employed", "Private"]) | |
residence_type = st.selectbox("What is your residence type?", ["Urban", "Rural"]) | |
avg_glucose_level = st.number_input("Average Glucose Level", min_value=0.0) | |
bmi = st.number_input("BMI", min_value=0.0) | |
smoking_status = st.selectbox("What is your smoking status?", ["never smoked", "smokes"]) | |
submit_button = st.button("Submit") | |
if submit_button: | |
data = { | |
"sex": labels_to_int[sex], | |
"age": age, | |
"hypertension": labels_to_int[hypertension], | |
"heart_disease": labels_to_int[heart_disease], | |
"ever_married": labels_to_int[ever_married], | |
"work_type": labels_to_int[work_type], | |
"Residence_type": labels_to_int[residence_type], | |
"avg_glucose_level": avg_glucose_level, | |
"bmi": bmi, | |
"smoking_status": labels_to_int[smoking_status] | |
} | |
df = pd.DataFrame([data]) | |
# Unpickle classifier | |
clf = joblib.load("stroke.pkl") | |
# Get prediction | |
prediction = clf.predict(df)[0] | |
# Output prediction | |
if prediction == 0: | |
st.text("No Stroke") | |
else: | |
st.text("Stroke") | |