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")