CoolFace
Apppublic

AkramAzman/MaternalHealth

sourceHugging Faceupdated 1y agoView on Hugging Face
0likes
app.py41 linesDownload Raw Back to root
1import numpy as np
2import pandas as pd
3import joblib
4import gradio as gr
5
6# Load model
7model_bundle = joblib.load("MaternalHealthRisk.pkl")
8model = model_bundle["model"]
9scaler = model_bundle["scaler"]
10
11def predict_risk(age, systolic, diastolic, bs, body_temp, hr):
12    # Define column names
13    input_array = np.array([[age, systolic, diastolic, bs, body_temp, hr]])
14    feature_names = ["Age", "SystolicBP", "DiastolicBP", "BS", "BodyTemp", "HeartRate"]
15    input_df = pd.DataFrame(input_array, columns=feature_names)
16    
17    # Scale input
18    scaled_input = scaler.transform(input_df)
19    
20    # Predict
21    prediction = model.predict(scaled_input)[0]
22    risk_map = {0: "High Risk", 1: "Low Risk", 2: "Mid Risk"}
23    return f"Predicted Maternal Health Risk: {risk_map[prediction]}"
24
25interface = gr.Interface(
26    fn=predict_risk,
27    inputs=[
28        gr.Number(label="Age", value=30),
29        gr.Number(label="Systolic BP", value=120),
30        gr.Number(label="Diastolic BP", value=80),
31        gr.Number(label="Blood Sugar (mmol/L)", value=5.5),
32        gr.Number(label="Body Temperature (°C)", value=36.6),
33        gr.Number(label="Heart Rate (bpm)", value=75),
34    ],
35    outputs="text",
36    title="🤰 Maternal Health Risk Predictor",
37    description="Predict maternal health risk level using a trained Random Forest model."
38)
39
40interface.launch()
41