|
|
import gradio as gr |
|
|
import pandas as pd |
|
|
import pickle |
|
|
import numpy as np |
|
|
import pandas as pd |
|
|
|
|
|
|
|
|
with open("model.pkl", "rb") as model_file: |
|
|
model = pickle.load(model_file) |
|
|
|
|
|
|
|
|
def predict_diabetes_risk(pregnancies, glucose, blood_pressure, insulin, bmi, age): |
|
|
""" |
|
|
Predict diabetes risk based on user inputs. |
|
|
""" |
|
|
|
|
|
input_data = np.array([[pregnancies, glucose, blood_pressure, insulin, bmi, age]]) |
|
|
prediction = model.predict(input_data) |
|
|
probability = model.predict_proba(input_data)[0][1] |
|
|
risk_level = "High Risk" if prediction[0] == 1 else "Low Risk" |
|
|
return f"Risk Level: {risk_level} (Probability: {probability:.2%})" |
|
|
|
|
|
|
|
|
with gr.Blocks() as demo: |
|
|
gr.Markdown("## Diabetes Risk Predictor") |
|
|
gr.Markdown("Enter the following details to predict your risk of diabetes.") |
|
|
|
|
|
with gr.Row(): |
|
|
pregnancies = gr.Number(label="Pregnancies", value=0) |
|
|
glucose = gr.Number(label="Glucose Level", value=0) |
|
|
blood_pressure = gr.Number(label="Blood Pressure Level", value=0) |
|
|
insulin = gr.Number(label="Insulin Level", value=0) |
|
|
bmi = gr.Number(label="BMI (Body Mass Index)", value=0) |
|
|
age = gr.Number(label="Age", value=0) |
|
|
|
|
|
predict_button = gr.Button("Predict Risk") |
|
|
output = gr.Textbox(label="Prediction Result") |
|
|
|
|
|
predict_button.click( |
|
|
predict_diabetes_risk, |
|
|
inputs=[pregnancies, glucose, blood_pressure, insulin, bmi, age], |
|
|
outputs=output, |
|
|
) |
|
|
|
|
|
|
|
|
if __name__ == "__main__": |
|
|
demo.launch() |
|
|
|
|
|
|