Methods

Window features on RR intervals and engine beat measurements, gradient boosting with monotonic constraints, a physiological guard, hysteresis episodes and an inconclusive output.

2 min read

Pipeline

  1. Beats. Positions from the existing engine (sensor data, SCI, MIT-BIH engine outputs) or from PhysioNet reference annotations (LTAFDB); AFDB uses its PhysioNet-provided detections. Beats before a record’s first rhythm annotation are dropped.
  2. Windows. Runs of consecutive beats, 32 beats stepping 8 for long recordings, 16 beats stepping 4 for 30-second strips. A window is discarded if any RR interval is outside 0.2-3.0 s or its heart rate exceeds 200 beats per minute (artefact).
  3. Features, RR-based (10): heart rate, normalised RMSSD, coefficient of variation, pNN50, Shannon entropy of the RR histogram, sample entropy, turning point ratio, Poincare SD1/SD2, irregularity index (fraction of successive differences above 10 % of the median RR), normalised median absolute deviation.
  4. Features, engine morphology (12, where the engine ran): fraction of beats with a detected P wave, P amplitude mean and CV, QRS width mean and std, deformation index mean and std, quality index mean, std and minimum, R-S amplitude mean and std, ventricular fraction from the engine’s beat classifier, fraction of the window inside engine out-of-signal portions. Missing on sources without an engine run; the model handles missing values natively.
  5. Model. scikit-learn HistGradientBoostingClassifier, depth 4, 300 iterations, learning rate 0.05, L2 = 1, with monotonic constraints: RR-irregularity features can only increase the AF probability. Model file about 0.5 MB.
  6. Physiological guard. A window with irregularity index below 0.1 and RR CV below 0.05 (practically regular rhythm) is never called AF.
  7. Episodes (long recordings). Hysteresis over consecutive windows: on at 0.6, off at 0.3, minimum one window; parameters selected on the LTAFDB tuning records by maximising the minimum of the four EC57 metrics. A two-scale cascade (16-beat proposes, 32-beat confirms) is evaluated as an option.
  8. Strip decision (30 s). AF if the highest window probability is at least 0.8, not AF if at most 0.5, otherwise inconclusive. Strips with no plausible window are inconclusive.

Noise handling

Sawtooth artefacts make the engine detect spurious beats at about 236 per minute; such windows fail the plausibility rule and the strip becomes inconclusive. Noisy strips are mostly marked out-of-signal by the engine itself; that fraction and the quality index are model features. A separately trained artefact detector (raw-signal quality indices plus engine summaries) reproduced the expert’s flags only at 86 % / 85 % and added refusals without improving accuracy, so it is not used.

Scoring

EC57 episode and duration sensitivity and positive predictivity (definitions of the epicmp utility), window-level sensitivity and specificity, and per-strip sensitivity, specificity, PPV and NPV with the inconclusive rate reported separately.