import streamlit as st import pickle import numpy as np # Load model and scaler model = pickle.load(open('model/model.pkl', 'rb')) scaler_model = pickle.load(open('model/scaler.pkl', 'rb')) # App title st.title("Diabetes Prediction App") st.write("Enter patient details to predict diabetes risk") # Input fields pregnancies = st.number_input("Pregnancies", min_value=0, step=1) glucose = st.number_input("Glucose Level", min_value=0.0) blood_pressure = st.number_input("Blood Pressure", min_value=0.0) skin_thickness = st.number_input("Skin Thickness", min_value=0.0) insulin = st.number_input("Insulin Level", min_value=0.0) bmi = st.number_input("BMI", min_value=0.0) dpf = st.number_input("Diabetes Pedigree Function", min_value=0.0) age = st.number_input("Age", min_value=0, step=1) # Predict button if st.button("Predict"): # Prepare input features = np.array([[pregnancies, glucose, blood_pressure, skin_thickness, insulin, bmi, dpf, age]]) features_scaled = scaler_model.transform(features) # Prediction prediction = model.predict(features_scaled)[0] probability = model.predict_proba(features_scaled)[0][1] * 100 # Risk classification if probability >= 70: risk = "High Risk" st.error(" High Risk of Diabetes") elif probability >= 40: risk = "Moderate Risk" st.warning(" Moderate Risk of Diabetes") else: risk = "Low Risk" st.success(" Low Risk of Diabetes") result = "Diabetic" if prediction == 1 else "Non-Diabetic" # Display results st.subheader("Prediction Result") st.write(f"**Result:** {result}") st.write(f"**Risk Level:** {risk}") st.write(f"**Probability:** {probability:.2f}%")