The interface is localized. Skill descriptions and documents are machine-translated by AI into your language; code, commands, paths and technical terms stay in the original, and the author's document governs.
Explore skills
Data & research · SKILL.md

scienceclaw-benchmark-for42

scienceclaw-benchmark-for42

Use when a task gives hourly ICU records (vitals, labs, demographics, one stay per patient) with sepsis labels and asks for causal hour-by-hour sepsis alarms on new stays, scored by normalized clinical utility (PhysioNet/CinC 2019 early sepsis prediction; corresponds to FoR42 of the companion ScienceClaw-Eval benchmark).

Independent GitHub snapshot · Automated classification · Original documentation governs

Skill documentation

GitHub

name: scienceclaw-benchmark-for42 description: "Use when a task gives hourly ICU records (vitals, labs, demographics, one stay per patient) with sepsis labels and asks for causal hour-by-hour sepsis alarms on new stays, scored by normalized clinical utility (PhysioNet/CinC 2019 early sepsis prediction; corresponds to FoR42 of the companion ScienceClaw-Eval benchmark)." metadata: { "openclaw": { "emoji": "📊" } }

Early sepsis alarms from hourly ICU data

Task. Input: a long table, one row per patient-hour (patient_id, hour, the 40 challenge variables: vitals, labs, Age, Gender, Unit1/Unit2, HospAdmTime, ICULOS); the labelled table also has SepsisLabel. Deliverable: one 0/1 integer array per stay to score, as long as the stay, in order of first appearance.

Quality. Normalized clinical utility, higher is better: (U_obs - U_inaction) / (U_best - U_inaction) summed over stays; 1 is optimal, 0 equals never alarming, negative is worse than silence. Per hour: a true alarm earns up to +1 from 12 h before to 3 h after t_sepsis (first positive label + 6 h), a miss costs up to -2, a false alarm -0.05.

Tools (from scilib import sepsis, no pretrained weights).

  • fit_predict(train, [table_a, table_b]) returns (preds, info) with the chosen threshold and out-of-fold utility (oof_utility); operator sepsis_early_warning_alarms.
  • SepsisModel(targets, smooth, hold, prevalence, linear_weight): shallow LightGBM plus logistic regression on the causal features of build_features; tune on grouped out-of-fold utility.
  • normalized_utility(labels, preds) (operator sepsis_normalized_utility), stay_folds, causal_smooth, hold_alarms.

Routes. Baseline: class-balanced logistic regression on last-observation-carried-forward vitals plus static variables, threshold chosen for utility. Stronger: the boosted ensemble, compared by patient-grouped out-of-fold utility, not row-level AUC.

Rules.

  • Strict causality: the alarm at hour t uses rows 0..t of that stay only. Never use stay length, hours to the end of the record or whole-stay statistics: septic records end soon after onset, so "alarm near the end" scores well offline and is useless in use. Check by truncating stays and re-running; earlier hours must not change.
  • Split by patient, never by row. Septic stays are rare (about 7 % in the public data), so utility is noisy; report its spread.
  • The best threshold depends on the septic share (false alarms cost per hour); re-tune for a different hospital. Variables can be wholly missing at one site (EtCO2 in hospital A).
  • Keep the declared output: finite 0/1 integers, per-stay lengths.
Saved skills