Predizione Riammissione Ospedaliera a 30 Giorni
Clinical model for diabetes patient readmission risk assessment
Concise pipeline for predicting readmission within 30 days in diabetic patients. 101k encounters, audit for fairness with Fairlearn (<0.05 demographic parity), LightGBM with class imbalance.
Highlights
- 101.766 encounters from 130 US hospitals (1999-2008), 50 clinical and demographic features
- AUC-ROC 0.62–0.67, in line with literature on hospital readmission of diabetic patients
- Class imbalance explicit: 11% positive (re-evaluated within 30 days)
- Fairness audit with Fairlearn: demographic parity gap < 0.05 between ethnic groups and age
- Clinical feature engineering: ICD-9 mapping to macro categories, handling of missing values > 50%
- Group-aware train-test split that prevents patient leakage between splits
- 5 notebooks + 7 theoretical articles (clinical framing, EDA, preprocessing, metrics, fairness)
- Modular package `readmit_pipeline` with CLI and batch/single patient inference APIs
What is the project?
Pipeline ML healthcare per la predizione della riammissione ospedaliera entro 30 giorni in pazienti diabetici, con audit di fairness obbligatorio rispetto a etnia ed età. Risponde a un'esigenza concreta della Hospital Readmissions Reduction Program (HRRP) che penalizza gli ospedali con tassi elevati di riammissione: il modello identifica al momento della dimissione i pazienti ad alto rischio, abilitando interventi di follow-up preventivi (telemedicina, ambulatoriale, caregiver). Repo: github.com/fedcal/Predizione-della-riammissione-ospedaliera-a-30-Giorni.
Pipeline Architecture
- Data loading: 101.766 encounter × 50 feature da 130 ospedali (1999–2008)
- Data quality: mappatura ICD-9 a macro-categorie cliniche, gestione missing values (~97% missing su
weight), deduplicazione pazienti - Preprocessing: ColumnTransformer + group-aware split per evitare leak di pazienti
- Feature engineering: aggregati clinici, feature temporali su admissions precedenti
- Confronto modelli: Logistic Regression (interpretabile) → Random Forest → LightGBM
- Fairness audit: Fairlearn MetricFrame su demographic parity, equalized odds, predictive parity
- Threshold optimization: F-beta con β>1 per privilegiare sensibilità clinica
- Inference: scoring batch e single-patient via CLI
readmit-predict
Metrics and Fairness
- AUC-ROC 0.62–0.67 (consistente con letteratura clinical readmission)
- AUC-PR: metrica primaria su classe sbilanciata 11%
- Recall ottimizzato (β>1) - penalizza più i falsi negativi (paziente ad alto rischio non flaggato)
- Demographic Parity gap < 0.05 tra gruppi etnici (Fairlearn)
- Equalized Odds verificato su age groups (≤30 / 30–60 / >60)
Use Case Business
Sistemi di supporto decisionale per ospedali che devono rispettare i target HRRP evitando penalità federali (riammissioni costano $20–40k per episodio). L'output del modello informa i protocolli di dimissione: pazienti ad alto rischio vengono inseriti automaticamente in programmi di telemedicina e follow-up ambulatoriale, riducendo sia i costi diretti sia le penalità regolatorie.
Ethics and Compliance
L'audit di fairness con Fairlearn è un requisito non negoziabile in healthcare ML: garantisce che il modello non discrimini sistematicamente alcuni gruppi (es. pazienti di etnia minoritaria con accesso storicamente ridotto a follow-up). La pipeline è documentata in modo da essere ispezionabile, riproducibile e conforme ai principi della EU AI Act (sistemi AI ad alto rischio in healthcare, Annex III).
Full technology stack
| Level | Technology | Annotation |
|---|---|---|
| Linguaggio | Python 3 | - |
| ML core | scikit-learn, LightGBM, XGBoost | - |
| Fairness | Fairlearn - MetricFrame, Demographic Parity, Equalized Odds | - |
| Validation | Stratified k-fold CV con group-aware split (no patient leakage) | - |
| Class Imbalance | Class weighting + SMOTE; F-beta β>1 (sensibilità prioritaria) | - |
| Documentazione | Docusaurus 3 + TypeScript + KaTeX | - |
| CLI | readmit-train, readmit-predict | - |


