foundationalecgnet-ecg-eval
FoundationalECGNet: A Lightweight Foundational Model for ECG-based Multitask Cardiac Analysis — Islam Sk. et al. (2025) (arXiv:2509.08961, 2025)
What this evaluates
Evaluates a lightweight foundational model for ECG-based cardiac analysis, specifically testing its ability to classify signals as Normal/Abnormal and perform fine-grained disease classification across multiple cardiac conditions.
Datasets
- PTB-XL — total 21799; splits: train (-1), val (-1)
- CinC 2017 — total 8528; splits: train (-1), val (-1)
- MedalCare-XL — total 16900; splits: train (-1), val (-1)
- PTB — total 549; splits: train (-1), test (-1)
Metrics
F1-score(primary) — range: [0, 1]- Harmonic mean of precision and recall, computed per class and averaged across the binary Normal/Abnormal task and the five fine-grained cardiac conditions.
Input / output format
Input: Multichannel ECG signals resampled to 250 Hz and truncated/padded to 1500 samples per channel, with class imbalance mitigated via ADASYN.
Output: Binary label (Normal/Abnormal) followed by fine-grained multi-class disease label (one of five cardiac conditions).
Scoring recipe
def compute_f1(predictions, gold):
classes = sorted(set(predictions) | set(gold))
f1_scores = []
for c in classes:
tp = sum(p == c and g == c for p, g in zip(predictions, gold))
fp = sum(p == c and g != c for p, g in zip(predictions, gold))
fn = sum(p != c and g == c for p, g in zip(predictions, gold))
prec = tp / (tp + fp) if (tp + fp) > 0 else 0.0
rec = tp / (tp + fn) if (tp + fn) > 0 else 0.0
f1 = 2 * prec * rec / (prec + rec) if (prec + rec) > 0 else 0.0
f1_scores.append(f1)
return sum(f1_scores) / len(f1_scores)
Common pitfalls
- Sequential weight transfer across datasets may cause catastrophic forgetting or bias toward later datasets if not evaluated carefully.
- ADASYN synthetic samples might inflate performance metrics if generated before strict train/val/test separation.
- Resampling all signals to exactly 1500 samples may truncate longer ECG segments or introduce interpolation artifacts that affect clinical validity.
Evidence (verbatim from paper)
We resample all signals to 250 Hz. To ensure uniformity across the datasets, each signal is resampled to 1500 samples from each channel. To address class imbalance within the dataset, we employ the ADASYN algorithm, which generates synthetic samples for the underrepresented classes. The first three datasets are split into training and validation sets with an 80:20 ratio, and the final dataset is split into training and testing sets with an 80:20 ratio to evaluate the model’s performance. The model first classifies ECG signals as Normal/Abnormal, then performs fine-grained disease classification into five cardiac conditions with state-of-the-art F1-scores (99% for Normal/Abnormal, 99% for Conduction Disorders and Hypertrophy, 98.9% for Arrhythmias).
Citation
@misc{islamsk2025foundationalecgnet,
title={FoundationalECGNet: A Lightweight Foundational Model for ECG-based Multitask Cardiac Analysis},
author={Islam Sk. et al. (2025)},
year={2025},
note={arXiv:2509.08961}
}
- arXiv: 2509.08961