import streamlit as st from joblib import load # Import load from joblib instead of pickle # Load the diabetes prediction model diabetes_model = load('models/diabetes.sav') # Streamlit app def main(): # Set page config st.set_page_config( page_title="Diabetes Prediction App", page_icon="💉", layout="centered", initial_sidebar_state="expanded", ) # Header st.title("Diabetes Prediction App") st.image("static/logo.png", use_column_width=True) # Input form st.sidebar.header("User Input") # User details firstname = st.sidebar.text_input("First Name", help="Enter your first name") lastname = st.sidebar.text_input("Last Name", help="Enter your last name") email = st.sidebar.text_input("Email", help="Enter your email address") phone = st.sidebar.text_input("Phone", help="Enter your phone number") gender = st.sidebar.selectbox("Gender", ["Male", "Female"]) # Clinical details st.sidebar.subheader("Clinical Details") pregnancies = st.sidebar.number_input("Pregnancies", value=0, help="Number of pregnancies") glucose = st.sidebar.number_input("Glucose", value=0, help="Glucose level") bloodpressure = st.sidebar.number_input("Blood Pressure", value=0, help="Blood pressure") insulin = st.sidebar.number_input("Insulin", value=0, help="Insulin level") bmi = st.sidebar.number_input("BMI", value=0.0, help="Body Mass Index") diabetespedigree = st.sidebar.number_input("Diabetes Pedigree", value=0.0, help="Diabetes pedigree function") age = st.sidebar.number_input("Age", value=0, help="Age") skinthickness = st.sidebar.number_input("Skin Thickness", value=0, help="Skin thickness") # Prediction button if st.sidebar.button("Predict", key="predict_button"): pred = predict_diabetes( pregnancies, glucose, bloodpressure, skinthickness, insulin, bmi, diabetespedigree, age ) result_message = "POSITIVE" if pred else "NEGATIVE" st.success(f"Hello {firstname}, your Diabetes test results are ready. RESULT: {result_message}") # Footer st.sidebar.markdown("---") st.sidebar.markdown("© 2023 Diabetes Prediction App") # Function to predict diabetes def predict_diabetes(pregnancies, glucose, bloodpressure, skinthickness, insulin, bmi, diabetespedigree, age): pred = diabetes_model.predict( [[pregnancies, glucose, bloodpressure, skinthickness, insulin, bmi, diabetespedigree, age]] ) return bool(pred[0]) # Run the Streamlit app if __name__ == "__main__": main()