File size: 2,074 Bytes
e761b04
 
b806720
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
e761b04
aec1c32
fe851d0
 
 
b806720
 
 
fe851d0
 
 
 
b806720
fe851d0
 
 
 
 
b806720
fe851d0
b806720
 
 
 
8dcd3f8
fe851d0
 
b806720
fe851d0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
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")