diabet / app.py
MamadouAliou82's picture
update
88bab49 verified
raw
history blame
2.38 kB
import gradio as gr
import pandas as pd
import joblib
# Load scaler, encoder, and model
scaler = joblib.load(r'toolkit/scaler.joblib')
model = joblib.load(r'toolkit/model_final.joblib')
encoder = joblib.load(r'toolkit/encoder.joblib')
# Prediction function
def predict(Gender, Urea, Cr, HbA1c, Chol, TG, HDL, LDL, VLDL, BMI):
# Create a DataFrame
input_df = pd.DataFrame({
'Gender': [Gender],
'Urea': [float(Urea)],
'Cr': [float(Cr)],
'HbA1c': [float(HbA1c)],
'Chol': [float(Chol)],
'TG': [float(TG)],
'HDL': [float(HDL)],
'LDL': [float(LDL)],
'VLDL': [float(VLDL)],
'BMI': [float(BMI)],
})
# Transform gender using the encoder
input_df['Gender'] = encoder.transform(input_df['Gender'])
# Apply scaler if necessary (uncomment if scaling is required)
# input_df = scaler.transform(input_df)
# Make prediction
prediction = model.predict(input_df)
# Prediction label mapping
prediction_label = {0: "No Diabetes", 1: "Prediabetic", 2: "Diabetic"}
return prediction_label[int(prediction[0])]
# Gradio app
with gr.Blocks(theme=gr.themes.Monochrome()) as app:
gr.Image("imgdiabe.JPG", label="Diabetes Prediction App")
gr.Markdown("# Diabetes Prediction App")
gr.Markdown(
"This app predicts a patient's diabetes status based on their health parameters. "
"Please provide the following inputs:"
)
with gr.Row():
with gr.Column():
Gender = gr.Radio(['M', 'F'], label="Gender")
Urea = gr.Slider(0, 100, step=1, label="Urea (mg/dL)")
Cr = gr.Number(label="Creatinine (mg/dL)")
HbA1c = gr.Number(label="HbA1c (%)")
Chol = gr.Number(label="Cholesterol (mg/dL)")
with gr.Column():
TG = gr.Number(label="Triglycerides (mg/dL)")
HDL = gr.Slider(0, 100, step=1, label="HDL Cholesterol (mg/dL)")
LDL = gr.Number(label="LDL Cholesterol (mg/dL)")
VLDL = gr.Number(label="VLDL (mg/dL)")
BMI = gr.Number(label="Body Mass Index (BMI)")
predict_btn = gr.Button("Predict")
output = gr.Label(label="Prediction Result")
predict_btn.click(
fn=predict,
inputs=[Gender, Urea, Cr, HbA1c, Chol, TG, HDL, LDL, VLDL, BMI],
outputs=output
)
app.launch()