Add MIMIC-III circulatory failure dataset and prediction task with ablation study#1096
Open
kywang0906 wants to merge 16 commits intosunlabuiuc:masterfrom
Open
Add MIMIC-III circulatory failure dataset and prediction task with ablation study#1096kywang0906 wants to merge 16 commits intosunlabuiuc:masterfrom
kywang0906 wants to merge 16 commits intosunlabuiuc:masterfrom
Conversation
… chartevents in MIMIC3 configuration
…in MIMIC3CirculatoryFailureDataset
jhnwu3
requested changes
May 9, 2026
Collaborator
jhnwu3
left a comment
There was a problem hiding this comment.
Will review further, here, but this is a big issue with the PR.
| logger = logging.getLogger(__name__) | ||
|
|
||
|
|
||
| class MIMIC3CirculatoryFailureDataset(BaseDataset): |
Collaborator
There was a problem hiding this comment.
Hey,I don't think you need to wrap MIMIC3 again, see the existing implementation here for MIMIC3. I don't see how this is different from our MIMIC3 implementation.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR adds a new dataset and task for early circulatory failure prediction on MIMIC-III, inspired by the FAMEWS framework for fairness-aware early warning systems.
The contribution includes:
MIMIC3CirculatoryFailureDataset) for cohort construction and MAP time-series extractionCirculatoryFailurePredictionTask) for generating time-point prediction samplesPaper Reference
This work is inspired by:
FAMEWS: Fairness Auditing for Medical Early-Warning Systems
The task design follows the early-warning prediction setting described in the paper, focusing on predicting circulatory failure events within a future time window.
Contributors:
Kuang-Yu Wang (Net Id: kuangyu4, Email: kuangyu4@illinois.edu)
Ya Hsuan Yang (Net Id: yhyang3, Email: yhyang3@illinois.edu)
Contribution Type
File Overview
Dataset
pyhealth/datasets/mimic3_cf.pyImplements cohort construction, failure label generation, and MAP time-series extraction
pyhealth/datasets/configs/mimic3_cf.yamlDataset configuration for MIMIC-III tables
Task
pyhealth/tasks/circulatory_failure_prediction.pyDefines input/output schema and label generation logic
Example
examples/mimic3_cf_circulatory_failure_logreg.pyDemonstrates dataset-task pipeline and ablation study
Tests
tests/core/test_circulatory_failure_prediction.pytests/core/test_mimic3_cf.pyAblation Study
We conduct ablation experiments on:
1. Prediction Window
Results show that shorter prediction windows yield stronger predictive signals, while longer horizons introduce uncertainty and reduce performance.
2. Feature Design
The advanced feature setting improves recall by capturing temporal trends in physiological signals.
3. Fairness Analysis (Subgroup Evaluation)
We evaluate performance across gender subgroups (M/F) and observe substantial disparities in recall and ROC-AUC, consistent with findings in FAMEWS regarding fairness issues in early warning systems.
Testing
All tests are implemented using synthetic data to ensure fast execution:
Notes