Multimodal Clinical Decision Support for Sepsis Onset Prediction
Constructing an end-to-end continuous risk trajectory engine for ICU patient encounters. Combines irregular time-series vital signs, high-frequency lab assays, and clinical notes to forecast septic shock up to 6 hours prior to clinical diagnostic criteria with localized FastSHAP explanations.
Empirical Benchmarks & Model Comparison
Problem Formulation & Investigative Scope
Problem Statement
Sepsis remains a leading cause of inpatient hospital mortality, where every hour of delayed antibiotic intervention correlates with a 7.6% decrease in survival probability. Traditional bedside warning systems (SIRS, SOFA) suffer from elevated false-alarm rates exceeding 80%, triggering alert fatigue among clinical teams.
Research Questions (RQs)
Structured Objectives
H1: Gradient boosting with feature temporal slopes achieves AUROC >= 0.92, significantly outperforming static SOFA scoring (AUROC ~ 0.76).
Trained on retrospective adult ICU admissions (MIMIC-IV); prospective clinical trial validation required before automated EHR integration.
Investigative Cohorts & Datasets
MIMIC-IV Clinical Cohort Subset
PhysioNet / MIT Laboratory for Computational PhysiologyDe-identified longitudinal electronic health records comprising adult intensive care unit admissions at Beth Israel Deaconess Medical Center.
Methodology, Architecture & Empirical Analysis
Methodological Pipeline & Feature Engineering
We engineered dynamic physiological trajectory features over rolling 3-hour, 6-hour, and 12-hour windows, capturing rate-of-change indicators such as serum lactate slopes ($\Delta ext{Lactate} / \Delta t$) and mean arterial pressure decay.
Missing values in irregular time-series telemetry were addressed using forward-fill imputation combined with binary masking indicators to encode observation frequency as an informative diagnostic signal.
Temporal Feature Extraction Routine
import polars as pl
def compute_dynamic_slopes(df: pl.DataFrame, window_hours: int = 6) -> pl.DataFrame:
return df.sort(['stay_id', 'charttime']).with_columns([
(pl.col('valuenum') - pl.col('valuenum').shift(1))
/ (pl.col('charttime').diff().dt.total_seconds() / 3600.0)
]).alias(f'slope_{window_hours}h')
Associated Publications & Preprints
Multimodal Continuous Sepsis Risk Trajectories in Intensive Care Units
Haladu Adamu, et al. · Proceedings of the Machine Learning for Healthcare (MLHC) Workshop (2025)
DOI: 10.48550/arXiv.2401.00001
@inproceedings{adamu2025multimodal,
title={Multimodal Continuous Sepsis Risk Trajectories in Intensive Care Units},
author={Adamu, Haladu and Collaborators},
booktitle={MLHC Workshop},
year={2025}
}