AkramAzman/MaternalHealth
0
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 