# Pacaf Ecg Classification Eval

> Evaluates a model's ability to classify 4-second two-channel ECG segments as either normal (healthy) or paroxysmal atrial fibrillation (PAxF). It probes the model's diagnostic accuracy and sensitivity in detecting cardiac arrhythmia from raw physiological signals. Use when the user wants to benchmark on PhysioNet PxAF prediction challenge database, or asks about evaluating this task. Reports Accuracy.

- Skill: `qhjqhj00/pacaf-ecg-classification-eval` (Agent Skill)
- Install (CLI): `npx skillmds add qhjqhj00/pacaf-ecg-classification-eval`
- Raw SKILL.md: https://api.skillmd.com/api/skills/qhjqhj00/pacaf-ecg-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/pacaf-ecg-classification-eval

---


# pacaf-ecg-classification-eval

> Accurate Detection of Paroxysmal Atrial Fibrillation with Certified-GAN and Neural Architecture Search — Asadi et al. (2023) (arXiv:2301.10173, 2023)

## What this evaluates

Evaluates a model's ability to classify 4-second two-channel ECG segments as either normal (healthy) or paroxysmal atrial fibrillation (PAxF). It probes the model's diagnostic accuracy and sensitivity in detecting cardiac arrhythmia from raw physiological signals.

## Datasets

- **PhysioNet PxAF prediction challenge database** — total 6043; splits: train (4231), val (906), test (906)

## Metrics

- `Accuracy` **(primary)** — range: [0, 1]
  - Accuracy = (TP + TN) / (TP + TN + FP + FN), where TP, TN, FP, and FN denote True Positives, True Negatives, False Positives, and False Negatives, respectively.
- `Specificity` — range: [0, 1]
  - Specificity = TN / (TN + FP), measuring the proportion of actual negatives correctly identified.
- `Sensitivity` — range: [0, 1]
  - Sensitivity = TP / (TP + FN), measuring the proportion of actual positives correctly identified.

## Input / output format

**Input**: 4-second two-channel ECG signal segments sampled at 128 Hz (16-bit resolution).

**Output**: Binary classification label: 'normal' (healthy) or 'PAxF' (paroxysmal atrial fibrillation).

## Scoring recipe

```python
def compute_metrics(tp, tn, fp, fn):
    accuracy = (tp + tn) / (tp + tn + fp + fn)
    specificity = tn / (tn + fp)
    sensitivity = tp / (tp + fn)
    return accuracy, specificity, sensitivity
```

## Common pitfalls

- The training set is augmented with 539 expert-certified synthetic GAN segments, which are not part of the original PhysioNet split and must be explicitly added to reproduce the reported results.
- The dataset uses 4-second segmented windows derived from 30-minute recordings, not the raw recordings themselves, which significantly alters the effective sample size and class distribution.
- Despite creating a 906-segment validation split, the authors explicitly state they did not use a separate validation set to evaluate training performance due to the small database size.

## Evidence (verbatim from paper)

> The formulas for quantifying measurements are listed below:

$$
A c c u r a c y = rac {T P + T N}{T P + T N + F P + F N} 	ag {4}
$$

$$
S p e c i f i c i t y = rac {T N}{T N + F P}
$$

$$
S e n s i t i v i t y = rac {T P}{T P + F N}
$$
where  $TP, TN, FP$ , and  $FN$  denote True Positives, True False Positive, and False Negative, respectively.

## Citation

```bibtex
@misc{asadi2023accurate,
  title={Accurate Detection of Paroxysmal Atrial Fibrillation with Certified-GAN and Neural Architecture Search},
  author={Asadi et al. (2023)},
  year={2023},
  note={arXiv:2301.10173}
}
```

- arXiv: 2301.10173

