danishhusyn commited on
Commit
8ec4a20
·
verified ·
1 Parent(s): 1dff29a

Upload app.py

Browse files
Files changed (1) hide show
  1. app.py +52 -0
app.py ADDED
@@ -0,0 +1,52 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import streamlit as st
2
+ import pickle
3
+ import numpy as np
4
+
5
+ # Load model and scaler
6
+ model = pickle.load(open('model\model.pkl', 'rb'))
7
+ scaler_model = pickle.load(open('model\scaler.pkl', 'rb'))
8
+
9
+ # App title
10
+ st.title("Diabetes Prediction App")
11
+ st.write("Enter patient details to predict diabetes risk")
12
+
13
+ # Input fields
14
+ pregnancies = st.number_input("Pregnancies", min_value=0, step=1)
15
+ glucose = st.number_input("Glucose Level", min_value=0.0)
16
+ blood_pressure = st.number_input("Blood Pressure", min_value=0.0)
17
+ skin_thickness = st.number_input("Skin Thickness", min_value=0.0)
18
+ insulin = st.number_input("Insulin Level", min_value=0.0)
19
+ bmi = st.number_input("BMI", min_value=0.0)
20
+ dpf = st.number_input("Diabetes Pedigree Function", min_value=0.0)
21
+ age = st.number_input("Age", min_value=0, step=1)
22
+
23
+ # Predict button
24
+ if st.button("Predict"):
25
+ # Prepare input
26
+ features = np.array([[pregnancies, glucose, blood_pressure,
27
+ skin_thickness, insulin, bmi, dpf, age]])
28
+
29
+ features_scaled = scaler_model.transform(features)
30
+
31
+ # Prediction
32
+ prediction = model.predict(features_scaled)[0]
33
+ probability = model.predict_proba(features_scaled)[0][1] * 100
34
+
35
+ # Risk classification
36
+ if probability >= 70:
37
+ risk = "High Risk"
38
+ st.error(" High Risk of Diabetes")
39
+ elif probability >= 40:
40
+ risk = "Moderate Risk"
41
+ st.warning(" Moderate Risk of Diabetes")
42
+ else:
43
+ risk = "Low Risk"
44
+ st.success(" Low Risk of Diabetes")
45
+
46
+ result = "Diabetic" if prediction == 1 else "Non-Diabetic"
47
+
48
+ # Display results
49
+ st.subheader("Prediction Result")
50
+ st.write(f"**Result:** {result}")
51
+ st.write(f"**Risk Level:** {risk}")
52
+ st.write(f"**Probability:** {probability:.2f}%")