This project provides a complete pipeline for ECG signal classification using deep learning. It includes raw and processed data, preprocessing scripts, model implementations, Jupyter notebooks, and evaluation results.
- Folder:
data/
- Description:
- Contains raw and processed ECG data.
- Raw data includes unprocessed ECG signals.
- Processed data contains features extracted from ECG signals, such as wavelet coefficients, R-R intervals, and PQRS complexes.
- Files:
physionet2017.csv
: Raw ECG signals with labels.dwt_features_ecg.csv
: Processed ECG features for machine learning.
- Details:
- Raw Data:
- Columns: Time-series signal values with a label column.
- Example:
Signal1 Signal2 ... Label 0.1 0.2 ... 0
- Processed Data:
- Contains extracted features like PQRS complexes, R-R intervals, wavelet variance, and entropy.
- Raw Data:
- Folder:
models/
- Description:
- Contains Python scripts implementing various deep learning architectures for ECG classification.
- Files:
resnet.py
: Implements the ResNet model.resnet_A.py
: ResNet with attention.cnn_bilstm.py
: Basic CNN-BiLSTM model.cnn_bilstm_a.py
: CNN-BiLSTM with attention.transformer.py
: Transformer-based model.
- Model Highlights:
- ResNet:
- Deep residual learning for feature extraction.
- Includes attention-based variants.
- CNN-BiLSTM:
- Combines convolutional feature extraction with BiLSTM for sequence modeling.
- Includes attention-enhanced variants.
- Transformer:
- Uses multi-head self-attention for long-range dependency modeling.
- ResNet:
- Folder:
notebooks/
- Description:
- Jupyter notebooks demonstrating model training, evaluation, and experimentation.
- Files:
resnet.ipynb
: ResNet training and evaluation.resnet_a.ipynb
: ResNet with attention.resnet-encoder.ipynb
: ResNet for feature extraction tasks.cnn_bilstm.ipynb
: CNN-BiLSTM training and evaluation.cnn_bilstm_a.ipynb
: CNN-BiLSTM with attention.bilstm_a.ipynb
: BiLSTM with attention for temporal analysis.transformer_resnet16.ipynb
: Hybrid Transformer + ResNet model.evaluation.ipynb
: Unified model evaluation.
- Folder:
preprocessing/
- Description:
- Scripts for preprocessing ECG data, tailored to different models.
- Files:
cnn_bi_lstm_preprocessing.py
: Prepares data for CNN-BiLSTM.resnet_preprocessing.py
: Prepares data for ResNet.
- Functionality:
- Load and normalize ECG signals.
- Extract features like PQRS complexes and R-R intervals.
- Split data into training and testing sets.
- Folder:
results/
- Description:
- Contains visualizations and performance metrics for all models.
- Files:
- Classification Reports:
cnnbilstm_classification_report.png
: CNN-BiLSTM classification report.resnet_classification_report.png
: ResNet classification report.
- Confusion Matrices:
cnnbilstm_best_conf_matrix.png
: Best CNN-BiLSTM confusion matrix.resnet_best_conf_matrix.png
: Best ResNet confusion matrix.resnet+encoder_conf_matrix.png
: Confusion matrix for ResNet + Encoder.
- Training Metrics:
resnet_epoch_loss.png
: Training loss for ResNet.resnet_epoch_accuracy.png
: Training accuracy for ResNet.
- ROC Curve:
AUC-ROC_resnet+encoder.png
: ROC curve for ResNet + Encoder.
- Classification Reports: