Spaces:
Sleeping
Sleeping
File size: 5,204 Bytes
e419394 163fb5d 8d882d5 5829f29 8d882d5 5829f29 8d882d5 163fb5d e419394 | 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 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 | import numpy as np
import pickle
import streamlit as st
import pandas as pd
import altair as alt
# Loading the saved model
diabetes_model = pickle.load(open("diabetes_model.sav", 'rb'))
scaler = pickle.load(open("scaler.sav", 'rb'))
# Function for diabetes prediction
def diabetes_prediction(input_data):
input_data_as_numpy_array = np.asarray(input_data)
input_data_reshaped = input_data_as_numpy_array.reshape(1, -1)
scaled_input = scaler.transform(input_data_reshaped)
prediction = diabetes_model.predict(scaled_input)
return prediction
def main():
st.title('Early Diabetes Prediction Model')
st.markdown("""
Welcome to my Early Diabetes Prediction Model!
This model utilizes advanced machine learning algorithms to provide users with a quick and accurate assessment of their risk for diabetes.
According to the World Health Organization (WHO), diabetes can often go undetected for several years with warning signs that may be subtle.
By simply entering your health metrics, you can know whether you have diabetes or not at an early stage.
This proactive approach empowers individuals to take informed steps towards managing and preventing diabetes.
""")
# Getting the input data from the user
Pregnancies = st.number_input('Number of Pregnancies', min_value=0, max_value=20, step=1)
Glucose = st.number_input('Glucose Level', min_value=0, max_value=500, step=1)
BloodPressure = st.number_input('Blood Pressure value', min_value=0, max_value=200, step=1)
SkinThickness = st.number_input('Skin Thickness value', min_value=0, max_value=100, step=1)
Insulin = st.number_input('Insulin Level', min_value=0, max_value=1000, step=1)
BMI = st.number_input('BMI value', min_value=0.0, max_value=100.0)
DiabetesPedigreeFunction = st.number_input('Diabetes Pedigree Function value', min_value=0.001, max_value=2.999, format="%.3f")
Age = st.number_input('Age of the Person', min_value=0, max_value=150, step=1)
# Code for Prediction
if st.button('Diabetes Test Result'):
prediction = diabetes_prediction([Pregnancies, Glucose, BloodPressure, SkinThickness, Insulin, BMI, DiabetesPedigreeFunction, Age])
if prediction[0] == 0:
st.success('The person is not diabetic.')
else:
st.success('The person is diabetic.')
st.markdown('**Medical advice:** Please consult a healthcare professional for further evaluation and treatment.')
# Example data table
st.markdown("### Example Data")
st.markdown("The following data were recorded from patients at Sunyani Regional Hospital for testing.")
examples = [
[6, 148, 72, 35, 0, 33.6, 0.627, 50],
[1, 85, 66, 29, 0, 26.6, 0.351, 31],
[8, 183, 64, 0, 0, 23.3, 0.672, 32],
[1, 89, 66, 23, 94, 28.1, 0.167, 21],
[0, 137, 40, 35, 168, 43.1, 2.288, 33]
]
columns = ['Pregnancies', 'Glucose', 'BloodPressure', 'SkinThickness', 'Insulin', 'BMI', 'DiabetesPedigreeFunction', 'Age']
df = pd.DataFrame(examples, columns=columns)
st.table(df)
# Educational content
st.markdown("### Learn More About Diabetes")
st.markdown("""
- [Diabetes Overview](https://www.cdc.gov/diabetes/about/index.html)
- [Preventing Diabetes](https://www.mayoclinic.org/diseases-conditions/type-2-diabetes/in-depth/diabetes-prevention/art-20047639)
""")
# Research and Development section
st.markdown("### Research and Development of My Diabetes Prediction Model")
st.markdown("""
Learn more about the research and development process behind this diabetes prediction model.
The document includes details about the data, model selection, and evaluation metrics used in the project.
""")
# Path to your PDF file
pdf_file_path = "Research and Development of the Diabetes Prediction Model.pdf"
with open(pdf_file_path, "rb") as pdf_file:
pdf_contents = pdf_file.read()
st.download_button(label="Download PDF", data=pdf_contents, file_name="Research and Development.pdf", mime="application/pdf")
# Determine the current Streamlit theme (light or dark)
theme = st.get_option("theme.base")
# Define button styling based on theme
if theme == "light":
button_bg_color = "#2c2e35"
button_border_color = "1px solid black"
button_text_color = "black"
else:
button_bg_color = "#2c2e35"
button_border_color = "1px solid #fff"
button_text_color = "#fff"
# Rounded button-like element with dynamic styling
st.markdown(f"""
<style>
.rounded-button {{
display: inline-block;
padding: 7px 15px;
font-size: 16px;
color: {button_text_color};
background-color: {button_bg_color};
border: {button_border_color};
border-radius: 7px;
text-align: center;
text-decoration: none;
cursor: default;
}}
</style>
<div style="text-align: center;">
<div class="rounded-button">
Created by: Samuel Ameyaw
</div>
</div>
""", unsafe_allow_html=True)
if __name__ == '__main__':
main()
|