← All work

Academic / healthcare ML · 2024-10-15

Sepsis Prediction Pipeline

Built and compared classification pipelines for sepsis prediction, including preprocessing, hyperparameter tuning, and model evaluation.

Role
ML project developer
Contribution
Built and compared classification pipelines for sepsis prediction, including preprocessing, hyperparameter tuning, and model evaluation.
Timeframe
2024
Status
Academic
Links
View public source
0.9998
XGBoost AUROC
0.9760
Random Forest AUROC
0.8955
Logistic Regression AUROC
Sepsis Prediction Pipeline
Fig. 01 — Sepsis Prediction Pipeline

Problem

This academic project explores whether clinical features can support sepsis prediction using supervised machine learning. It focuses on pipeline construction and model comparison.

Approach

I built preprocessing and classification workflows using Random Forest, XGBoost, and Logistic Regression, and explored hyperparameter tuning with Optuna. The work includes feature preparation and evaluation visualizations.

Evaluation

The public repository provides code and project evaluation artifacts. The headline number is the least informative thing in them. An AUROC of 0.9998 is bound to one dataset and one split, and a near-ceiling score on a single dataset usually says more about the evaluation than about the model. A meaningful assessment of a clinical prediction system also requires patient-level separation, time-aware evaluation, leakage checks, and external validation. The portfolio does not present the project's reported scores as proof of clinical effectiveness.

What would decide whether a model like this is usable is the operating point, and that is a cost-sensitive classification problem rather than a ranking one. Positive cases are rare relative to negatives in clinical data of this kind, so a model can be accurate and useless. Choosing a threshold means stating what a missed case costs relative to a false alarm — and false alarms carry a compounding cost of their own, because clinicians stop reading alerts that are usually wrong. The shape of that decision is the same one triage uses: partial information, error costs that are not symmetric, and a call that has to be committed to before the uncertainty resolves. No metric selects the threshold for you. Someone has to decide, the same way triage categories get assigned.

Tuned XGBoost ROC curve from the project evaluation set.
Tuned XGBoost ROC curve from the project evaluation set.

Outcome

The result is a reproducible project structure for comparing classifiers and examining their behavior. It is evidence of applied ML engineering and experimentation.

Limitations

This is academic work, not a clinically validated or deployed medical device. It does not establish earlier detection, patient benefit, or performance at a new hospital. Those claims require additional evidence beyond this project.

Plates

Project gallery

Fig. 02 — Model Comparison Dashboard
Fig. 03 — XGBoost Performance (Best Model)
Fig. 04 — Random Forest Analysis
Fig. 05 — Temporal Patient Analysis