Abnormal cardiac signal detection
Author: Mihai Nan
Problem Description
This problem focuses on developing an image classification model capable of distinguishing between normal ECG and abnormal ECG signals, starting from a dataset with real medical information.
The data provided in this problem is represented as ECG images, with each image corresponding to a complete recording of the electrical activity of the heart for a patient. The images can be used directly as input data for image classification models.
What is an ECG?
ECG (Electrocardiogram) is a non-invasive medical investigation that records the electrical activity of the heart over time.
Each heartbeat is controlled by electrical impulses, and the ECG measures these signals using electrodes placed on the surface of the body.
ECG is widely used for:
- detecting cardiac arrhythmias
- identifying myocardial infarction
- monitoring heart rhythm
- evaluating the general condition of the heart
Anomalies in the ECG signal can indicate serious cardiac conditions, which is why automating the analysis process is extremely important in medical practice.

Dataset
The dataset used contains preprocessed ECG recordings, with the following characteristics:
- Each example corresponds to a patient
- Each ECG is composed of 140 measurement points
- Each image is labeled with:
0– normal ECG1– abnormal ECG
The data is organized in CSV files:
train.csv– images and labels for trainingtest.csv– images without labels (for inference)
Problem Objective
The goal is to build an image classification model that, based on an ECG image, predicts whether the cardiac signal is normal or abnormal.
The model must:
- learn relevant visual patterns from ECG signals
- generalize correctly on unseen data
- achieve good performance on the test set
Submission File
At the end, you will generate a submission.csv file with the format:
image_path,label
images/ecg_000001.png,0
images/ecg_000002.png,1
Evaluation
The metric used for model evaluation is accuracy:
accuracy = (number_of_correct_predictions / total_number_of_predictions)
Scoring Rubric
- accuracy ≥ 98% → 100 points
- accuracy < 90% → 0 points
- otherwise → proportional score between 0 and 100