Spaces:
Sleeping
Sleeping
import gradio as gr | |
import joblib | |
import numpy as np | |
# Load the trained model | |
model = joblib.load("trained_model.pkl") | |
# Define the prediction function | |
def predict_heart_disease( | |
PhysicalHealthDays: float, | |
MentalHealthDays: float, | |
SleepHours: float, | |
BMI: float, | |
PhysicalActivities: str, | |
AlcoholDrinkers: str, | |
HIVTesting: str, | |
RemovedTeeth: str, | |
HighRiskLastYear: str, | |
CovidPos: str, | |
): | |
try: | |
# Encode categorical inputs as integers | |
physical_activities = 1 if PhysicalActivities == "Yes" else 0 | |
alcohol_drinkers = 1 if AlcoholDrinkers == "Yes" else 0 | |
hiv_testing = 1 if HIVTesting == "Yes" else 0 | |
removed_teeth = 1 if RemovedTeeth == "Yes" else 0 | |
high_risk_last_year = 1 if HighRiskLastYear == "Yes" else 0 | |
covid_pos = 1 if CovidPos == "Yes" else 0 | |
# Prepare features as a numpy array | |
features = np.array([[ | |
PhysicalHealthDays, | |
MentalHealthDays, | |
SleepHours, | |
BMI, | |
physical_activities, | |
alcohol_drinkers, | |
hiv_testing, | |
removed_teeth, | |
high_risk_last_year, | |
covid_pos, | |
]]) | |
# Make prediction | |
prediction = model.predict(features) | |
result = "Yes" if prediction[0] == 1 else "No" | |
return f"Heart Disease Prediction: {result}" | |
except Exception as e: | |
return f"Error in prediction: {str(e)}" | |
# Define the Gradio interface | |
inputs = [ | |
gr.inputs.Number(label="Physical Health Days"), | |
gr.inputs.Number(label="Mental Health Days"), | |
gr.inputs.Number(label="Sleep Hours"), | |
gr.inputs.Number(label="BMI"), | |
gr.inputs.Radio(["Yes", "No"], label="Physical Activities"), | |
gr.inputs.Radio(["Yes", "No"], label="Alcohol Drinkers"), | |
gr.inputs.Radio(["Yes", "No"], label="HIV Testing"), | |
gr.inputs.Radio(["Yes", "No"], label="Removed Teeth"), | |
gr.inputs.Radio(["Yes", "No"], label="High Risk Last Year"), | |
gr.inputs.Radio(["Yes", "No"], label="Covid Positive"), | |
] | |
outputs = gr.outputs.Textbox(label="Heart Disease Prediction") | |
# Create the Gradio app | |
app = gr.Interface( | |
fn=predict_heart_disease, | |
inputs=inputs, | |
outputs=outputs, | |
title="Heart Disease Prediction App", | |
description="Please enter health metrics to predict the risk of heart disease." | |
) | |
# Launch the app | |
if __name__ == "__main__": | |
app.launch() | |