Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| def input_form() -> dict: | |
| """Collect numeric-encoded patient features via sidebar widgets.""" | |
| st.sidebar.header("Patient Information") | |
| return { | |
| "gender": st.sidebar.selectbox("Gender", [(0.0, "Male"), (1.0, "Female")])[0], | |
| "age": st.sidebar.slider("Age", 0.0, 100.0, 50.0), | |
| "hypertension": st.sidebar.selectbox("Hypertension", [(0, "No"), (1, "Yes")])[0], | |
| "heart_disease": st.sidebar.selectbox("Heart Disease", [(0, "No"), (1, "Yes")])[0], | |
| "ever_married": st.sidebar.selectbox("Ever Married", [(0.0, "No"), (1.0, "Yes")])[0], | |
| "work_type": st.sidebar.selectbox( | |
| "Work Type", | |
| [(0.0, "Private"), (1.0, "Self-employed"), (2.0, "Govt_job"), (3.0, "children"), (4.0, "Never_worked")] | |
| )[0], | |
| "Residence_type": st.sidebar.selectbox( | |
| "Residence Type", [(0.0, "Urban"), (1.0, "Rural")] | |
| )[0], | |
| "avg_glucose_level": st.sidebar.number_input("Avg Glucose Level", 40.0, 300.0, 100.0), | |
| "bmi": st.sidebar.number_input("BMI", 10.0, 60.0, 25.0), | |
| "smoking_status": st.sidebar.selectbox( | |
| "Smoking Status", | |
| [(0.0, "formerly smoked"), (1.0, "never smoked"), (2.0, "smokes"), (3.0, "Unknown")] | |
| )[0] | |
| } | |
| def display_result(label: str, proba: float): | |
| """Render prediction and confidence.""" | |
| st.header("Prediction Result") | |
| st.markdown(f"**Stroke Type:** {label}") | |
| st.markdown(f"**Confidence:** {proba:.1%}") | |
| if proba < 0.5: | |
| st.info("Model confidence is low — consider additional evaluation.") | |