Evaluates the robustness and classification accuracy of deep learning models on biomedical time-series signals (ECG and EEG). It probes the model's ability to handle class imbalance, signal noise, and diverse diagnostic categories without relying on traditional oversampling techniques. Use when the user wants to benchmark on PTB Diagnostic ECG Database, MIT-BIH Arrhythmia Database, UCI Seizure EEG Dataset, or asks about evaluating this task. Reports Accuracy, F1 Score.
Scanned 9/11/2026
Install to Claude Code
npx -y skills add qhjqhj00/research-skills-pool --skill biomedical-timeseries-classification-eval --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Biomedical Timeseries Classification Eval?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/qhjqhj00-biomedical-timeseries-classification-eval)More formats (shields.io, HTML) on the badges page.
---
name: biomedical-timeseries-classification-eval
description: Evaluates the robustness and classification accuracy of deep learning models on biomedical time-series signals (ECG and EEG). It probes the model's ability to handle class imbalance, signal noise, and diverse diagnostic categories without relying on traditional oversampling techniques. Use when the user wants to benchmark on PTB Diagnostic ECG Database, MIT-BIH Arrhythmia Database, UCI Seizure EEG Dataset, or asks about evaluating this task. Reports Accuracy, F1 Score.
metadata:
skill_kind: dataset_eval
source_arxiv: 2507.12645
bibtex_key: guhdar2025novel
confidence: high
---
# biomedical-timeseries-classification-eval
> A Novel Data Augmentation Strategy for Robust Deep Learning Classification of Biomedical Time-Series Data: Application to ECG and EEG Analysis — Guhdar et al. (2025) (arXiv:2507.12645, 2025)
## What this evaluates
Evaluates the robustness and classification accuracy of deep learning models on biomedical time-series signals (ECG and EEG). It probes the model's ability to handle class imbalance, signal noise, and diverse diagnostic categories without relying on traditional oversampling techniques.
## Datasets
- **PTB Diagnostic ECG Database** — total ?; splits: test (-1)
- **MIT-BIH Arrhythmia Database** — total ?; splits: test (-1)
- **UCI Seizure EEG Dataset** — total ?; splits: test (-1)
## Metrics
- `Accuracy` **(primary)** — range: [0, 1]
- The proportion of correctly classified instances out of the total number of instances. Calculated as (TP + TN) / (TP + TN + FP + FN).
- `F1 Score` **(primary)** — range: [0, 1]
- The harmonic mean of Precision and Recall, providing a single metric that balances both concerns. Calculated as 2 * (Precision * Recall) / (Precision + Recall).
- `Precision` — range: [0, 1]
- The ratio of true positive predictions to the total number of positive predictions. Calculated as TP / (TP + FP).
- `Recall` — range: [0, 1]
- The ratio of true positive predictions to the total number of actual positives. Calculated as TP / (TP + FN).
- `Critical Success Index (CSI)` — range: [0, 1]
- A measure of the proportion of correctly predicted events out of all predicted and actual events. Calculated as TP / (TP + FP + FN).
- `Matthews Correlation Coefficient (MCC)` — range: [-1, 1]
- A correlation coefficient between the observed and predicted binary classifications that returns a value between -1 and +1. It is considered a balanced measure even with class imbalance.
## Input / output format
**Input**: Preprocessed biomedical time-series signals (ECG or EEG) after wavelet denoising and baseline removal, fed into a ResNet backbone with multi-head attention.
**Output**: Classification label corresponding to the diagnostic category, arrhythmia type, or seizure event.
## Scoring recipe
```python
def compute_metrics(y_true, y_pred):
tp = sum(1 for t, p in zip(y_true, y_pred) if t == p and t == 1)
tn = sum(1 for t, p in zip(y_true, y_pred) if t == p and t == 0)
fp = sum(1 for t, p in zip(y_true, y_pred) if t != p and p == 1)
fn = sum(1 for t, p in zip(y_true, y_pred) if t != p and p == 0)
accuracy = (tp + tn) / (tp + tn + fp + fn)
precision = tp / (tp + fp) if (tp + fp) > 0 else 0
recall = tp / (tp + fn) if (tp + fn) > 0 else 0
f1 = 2 * precision * recall / (precision + recall) if (precision + recall) > 0 else 0
csi = tp / (tp + fp + fn) if (tp + fp + fn) > 0 else 0
mcc = (tp * tn - fp * fn) / ((tp + fp) * (tp + fn) * (tn + fp) * (tn + fn)) ** 0.5
return {'Accuracy': accuracy, 'F1 Score': f1, 'Precision': precision, 'Recall': recall, 'CSI': csi, 'MCC': mcc}
```
## Common pitfalls
- Inference time is theoretically estimated based on FLOPs rather than empirically benchmarked on specific hardware, making real-world latency claims approximate.
- Perfect accuracy on the PTB dataset may indicate potential data leakage or overly simplistic train/test splits, which is a known issue in public biomedical benchmarks.
- Class imbalance is mitigated via Focal Loss rather than traditional oversampling, which may cause direct metric comparisons with baseline methods using SMOTE or similar techniques to be unfair.
## Evidence (verbatim from paper)
> The performance of the model was quantitatively assessed using a comprehensive set of evaluation metrics, including Accuracy (Equation 26), Precision (Equation 27), Recall (Equation 28), F1 Score (Equation 29), Critical Success Index (CSI) (Equation 30), and Matthews Correlation Coefficient (MCC) (Equation 31). The primary results highlighted in this section focus on accuracy and F1-score, with visual insights into the classification performance provided through accuracy plots and confusion matrices for each dataset.
## Citation
```bibtex
@misc{guhdar2025novel,
title={A Novel Data Augmentation Strategy for Robust Deep Learning Classification of Biomedical Time-Series Data: Application to ECG and EEG Analysis},
author={Guhdar et al. (2025)},
year={2025},
note={arXiv:2507.12645}
}
```
- arXiv: 2507.12645
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!