CoolFace
Modelpublic

Sushantak17/MedIntel-clinical-risk-models

sourceHugging Facemitupdated 3mo agoView on Hugging Face
0likes
Model Card

MedIntel — Clinical Risk Prediction Models

Three calibrated XGBoost models for predicting risk of Diabetes, Chronic Kidney Disease (CKD), and Anemia from standard laboratory blood tests.

Model Details

PropertyValue
AlgorithmXGBoost (Gradient Boosting)
CalibrationPlatt Scaling (CalibratedClassifierCV)
Features35 (13 base + 22 trend)
Training DataNHANES 2017-2018 (~5,000 adults)
ExplainabilitySHAP TreeExplainer
Frameworkscikit-learn, XGBoost, joblib

Performance (Test Set, n=4,909)

ModelAUROCBrierF1Threshold
Diabetes1.00000.00770.99180.402
CKD0.99990.00260.99620.465
Anemia1.00000.00100.99810.892

Files

FileDescriptionSize
xgb_diabetes.joblibRaw XGBoost diabetes model~563 KB
xgb_ckd.joblibRaw XGBoost CKD model~449 KB
xgb_anemia.joblibRaw XGBoost anemia model~279 KB
calibrator_diabetes.joblibPlatt-calibrated diabetes model~3.3 MB
calibrator_ckd.joblibPlatt-calibrated CKD model~2.6 MB
calibrator_anemia.joblibPlatt-calibrated anemia model~1.7 MB
evaluation_report.txtFull evaluation metrics—

Usage

python
import joblib
import numpy as np

# Load calibrated model
data = joblib.load("calibrator_diabetes.joblib")
model = data["calibrated_model"]
features = data["features"]

# 35-feature input vector (13 base + 22 trend features)
# Base: age, sex_encoded, bmi, hba1c, creatinine, albumin, egfr,
#        wbc, rbc, hemoglobin, hematocrit, systolic_bp, diastolic_bp
# Trend: {param}_slope, {param}_delta for each lab parameter
X = np.array([[50, 0, 31.4, 8.2, 1.0, 4.0, 91.7, 7.2, 4.9, 14.5, 43.0, 142, 88,
               0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0]])

prob = model.predict_proba(X)[:, 1]
print(f"Diabetes risk: {prob[0]:.1%}")  # ~94%

SHAP Explainability

python
import shap

raw = joblib.load("xgb_diabetes.joblib")
explainer = shap.TreeExplainer(raw["model"])
shap_values = explainer.shap_values(X)
# Positive SHAP = pushes toward high risk
# Negative SHAP = pushes toward low risk

Feature Importance (by SHAP)

DiabetesCKDAnemia
HbA1ceGFRHemoglobin
AgeRBCHematocrit
BMIBMISex
CreatinineCreatinineAlbumin
WBCAgeRBC

Training Pipeline

Fully reproducible 9-step pipeline in the MedIntel repository:

  1. 1.Download NHANES 2017-2018 from CDC
  2. 2.Merge 8 tables, compute eGFR (CKD-EPI 2021), impute missing values
  3. 3.Construct labels (ADA, KDIGO, WHO criteria)
  4. 4.Synthetic longitudinal augmentation (15% of patients)
  5. 5.Train XGBoost with stratified 5-fold CV
  6. 6.Platt scaling calibration
  7. 7.Full evaluation (AUROC, PR-AUC, Brier, subgroup analysis)
  8. 8.Download BC5CDR corpus for NER
  9. 9.Fine-tune BioBERT for biomedical NER

Intended Use

  • —Clinical decision support for healthcare providers
  • —Risk screening in telemedicine settings
  • —Research on multi-disease prediction

Limitations

  • —Trained on US population (NHANES) — may not generalize globally
  • —Trend features are synthetic (NHANES is cross-sectional)
  • —Not a substitute for clinical diagnosis

Citation

bibtex
@software{medintel2026,
  title={MedIntel: AI-Powered Clinical Risk Intelligence Platform},
  author={Jha, Sushantak Parashar},
  year={2026},
  url={https://github.com/Sushantak17/MedIntel}
}