Downloads · 30 days
0
rhs2/prodrome-clock
prodrome-clock is a tabular classification model from rhs2. Use it for the tabular classification task on the model card, and read the license before you ship it in a product. It is set up for prodrome. The card lists the license as apache-2.0.
Hourly early warning for sepsis in intensive care, from the Prodrome pipeline. Trained on hospital system A of the PhysioNet/CinC 2019 challenge corpus and evaluated on system B, which it never saw.
Downloads · 30 days
0
Access
Public
Updated Sep 6, 2026
Repo size
—
Likes
0
Public
Click a slice to open those files.
.json16.1 KB · 62%
From the Hugging Face model README
Hourly early warning for sepsis in intensive care, from the Prodrome pipeline. Trained on hospital system A of the PhysioNet/CinC 2019 challenge corpus and evaluated on system B, which it never saw.
This is a research artefact. It is not a medical device, it has not been cleared or approved by any regulator, and it must not be used to inform clinical decisions.
Measured by prodrome eval on corpus ef46d3e6ec24, split seed
7. External results first, because that is the number that means
something.
| tested on | utility | AUPRC | AUROC | detected (ever) | detected (in window) | median lead | alerts per patient-day | precision among alerted | calibration error |
|---|---|---|---|---|---|---|---|---|---|
| site B (external, never trained on) | 0.2413 | 0.047 | 0.628 | 0.347 | 0.065 | 45.5 h | 0.04 | 0.346 | 0.097 |
| site A (internal) | 0.2938 | 0.080 | 0.642 | 0.369 | 0.101 | 30.5 h | 0.04 | 0.506 | 0.090 |
utility is the published challenge scoring function, where alerting through the whole
beneficial window scores 1 and never alerting scores 0. precision among alerted is
the share of alerted patients who go on to become septic, against a base rate of about
7 percent.
With probability at least 95% over the calibration draw, at most 4.0 alerts are raised per patient-day and at least 30% of alerted patients go on to develop sepsis (observed on the calibration slice: 0.04 alerts per patient-day, 45% precision).
Checked on the external test patients, that promise held: precision among alerted patients was 0.346 against a floor of 0.30, and the alert rate was 0.04 against a budget of 4.0 per patient-day.
The threshold is not a default. It is chosen on held-out calibration patients as the lowest cut whose precision, at its exact Clopper-Pearson lower bound, clears the operator's floor and whose alert rate stays inside the operator's budget. When no threshold qualifies, the policy alerts on nothing rather than implying a guarantee it cannot support.
| ablation | features | utility | share of full | auroc | auprc | in window | alerts/pt-day |
|---|---|---|---|---|---|---|---|
| full | 205 | 0.2468 | 100% | 0.8016 | 0.0724 | 0.153 | 0.11 |
| physiology_only | 125 | 0.1159 | 47% | 0.7697 | 0.0604 | 0.117 | 0.08 |
| process_only | 75 | 0.2159 | 87% | 0.7263 | 0.0523 | 0.109 | 0.09 |
| clock_only | 3 | 0.2428 | 98% | 0.6656 | 0.0488 | 0.074 | 0.06 |
| workup_only | 72 | 0.2119 | 86% | 0.7539 | 0.0520 | 0.115 | 0.10 |
| no_time_index | 202 | 0.2316 | 94% | 0.7937 | 0.0707 | 0.156 | 0.14 |
The process and clock columns alone reach 87% of the full model's utility, more than physiology alone at 47%. This model is substantially reading the workup rather than the patient, which is worth knowing before anyone calls it an early warning.
Measured on site B (external).
A model that works on average and fails on the over-eighties is a model that fails, so the breakdown is here rather than on request.
| dimension | group | patients | septic | utility | AUROC | detection rate |
|---|---|---|---|---|---|---|
| unit | micu | 6,923 | 390 | 0.1658 | 0.542 | 0.251 |
| age_band | 80_plus | 2,322 | 129 | 0.1949 | 0.598 | 0.279 |
| age_band | 50_to_64 | 6,278 | 351 | 0.2268 | 0.612 | 0.316 |
| age_band | under_50 | 4,818 | 276 | 0.2351 | 0.610 | 0.341 |
| sex | male | 10,732 | 647 | 0.2357 | 0.628 | 0.342 |
| sex | female | 9,268 | 495 | 0.2486 | 0.627 | 0.354 |
| unit | sicu | 6,982 | 428 | 0.2720 | 0.689 | 0.393 |
| age_band | 65_to_79 | 6,582 | 386 | 0.2736 | 0.665 | 0.402 |
| unit | unknown | 6,095 | 324 | 0.2888 | 0.649 | 0.401 |
Research and education: reproducing the reported numbers, comparing a new method against a measured baseline on an openly licensed corpus, and studying calibrated abstention and cross-hospital transfer.
Out of scope: any clinical use, any deployment that informs patient care, any triage or resource allocation, and any claim about a population unlike the two hospital systems in this corpus.
pip install prodrome
prodrome init
prodrome data fetch # the corpus, under its own licence, 42 MB
prodrome data prepare
prodrome train && prodrome calibrate && prodrome eval
The model file here is loadable by prodrome.core.registry through the configuration
recorded alongside it. A clinical model without its feature pipeline is not a model, so
the preprocessing travels with the weights.
| corpus | PhysioNet/CinC Challenge 2019, version 1.0.0 |
| patients | 40,336 across two hospital systems |
| rows | 1,552,210, one per ICU hour |
| septic | 2,932 patients, 7.3 percent |
| trained on | system A, 4067 held-out patients at test |
| corpus digest | ef46d3e6ec2497f7279ef352acdc32521cf54d42bb785ba2f3df4f2e179d854f |
The model weights and the Prodrome source are Apache-2.0.
This model was produced from the PhysioNet/Computing in Cardiology Challenge 2019 database, which is available under the Open Database License (ODbL) v1.0. Under section 4.3 of that licence this notice accompanies the model as a Produced Work. The database itself is neither redistributed with this model nor included in the source repository. Cite Reyna et al., Early Prediction of Sepsis from Clinical Data: The PhysioNet/Computing in Cardiology Challenge 2019, Critical Care Medicine 48(2), 2020.
Every number above is generated from the committed evaluation reports by
prodrome publish card, so the card cannot drift from what the harness measured.