# Ecg Arrhythmia Classification Eval

> Evaluates a model's ability to classify cardiac arrhythmias from short ECG signal windows by leveraging transfer learning from pre-trained image CNNs. It probes the effectiveness of converting 1D physiological signals into 2D spectrograms and extracting high-level features for multi-class rhythm discrimination. Use when the user wants to benchmark on Combined MIT-BIH & European ST-T ECG Datasets, or asks about evaluating this task. Reports accuracy.

- Skill: `qhjqhj00/ecg-arrhythmia-classification-eval` (Agent Skill)
- Install (CLI): `npx skillmds add qhjqhj00/ecg-arrhythmia-classification-eval`
- Raw SKILL.md: https://api.skillmd.com/api/skills/qhjqhj00/ecg-arrhythmia-classification-eval/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: qhjqhj00 (https://skillmd.com/u/qhjqhj00)
- Updated: 2026-09-08
- Page: https://skillmd.com/skills/qhjqhj00/ecg-arrhythmia-classification-eval

---


# ecg-arrhythmia-classification-eval

> ECG Arrhythmia Classification Using Transfer Learning from 2-Dimensional Deep CNN Features — Salem et al. (2018) (arXiv:1812.04693, 2018)

## What this evaluates

Evaluates a model's ability to classify cardiac arrhythmias from short ECG signal windows by leveraging transfer learning from pre-trained image CNNs. It probes the effectiveness of converting 1D physiological signals into 2D spectrograms and extracting high-level features for multi-class rhythm discrimination.

## Datasets

- **Combined MIT-BIH & European ST-T ECG Datasets** — total 7008; splits: full (7008)

## Metrics

- `accuracy` **(primary)** — range: [0, 1]
  - Standard classification accuracy: the number of correctly predicted instances divided by the total number of instances.

## Input / output format

**Input**: 500-sample windows of 1D ECG signals transformed into 2D spectrograms using 31 frequency partitions.

**Output**: Single categorical label from four classes: Atrial Fibrillation, Malignant Ventricular Arrhythmia, ST-T change, or Normal Sinus Rhythm.

## Scoring recipe

```python
accuracy_scores = []
for train_idx, val_idx in kfold.split(data):
    X_train, y_train = data[train_idx], labels[train_idx]
    X_val, y_val = data[val_idx], labels[val_idx]
    # Transform to spectrograms, extract DenseNet-161 features from 12 layers
    # Apply chi-squared feature selection
    # Train linear SVM
    preds = svm.predict(X_val_features)
    accuracy_scores.append(accuracy_score(y_val, preds))
final_accuracy = mean(accuracy_scores)
```

## Common pitfalls

- Using a fixed train/test split instead of the specified ten-fold cross-validation, which can lead to high variance given the small dataset size (~7008 instances).
- Ignoring the specific window size (500 samples) and spectrogram partition count (31), which drastically alter the input representation and feature distribution.
- Failing to apply chi-squared feature selection before SVM classification, as raw DenseNet features contain many irrelevant ImageNet-specific maps that degrade performance.

## Evidence (verbatim from paper)

> achieves 97.23% accuracy on a near-7000-instance dataset via ten-fold cross-validation

## Citation

```bibtex
@misc{salem2018ecg,
  title={ECG Arrhythmia Classification Using Transfer Learning from 2-Dimensional Deep CNN Features},
  author={Salem et al. (2018)},
  year={2018},
  note={arXiv:1812.04693}
}
```

- arXiv: 1812.04693

