Using deep learning to classify ECG Readings as normal or abnormal, controlling for class imbalances, exploring biasing output to maximize real-world patient outcomes.
Data were obtained from here: https://www.kaggle.com/shayanfazeli/heartbeat?select=mitbih_test.csv
- ptbdb_normal and ptbdb_abnormal are the datafiles containing the normal and abnormal ECGs, respectively
- Accuracy_Raw_Output contains csvs of raw accuarcy data under various models
- Cut_Off_Values contains figures showing error rates vs cutoff values that were put in the final write up
- ECG_Eaxmples contains figures of sample EcG readings -
- Model_Comparison contains figures of the models vs accuracy
- Model_Fitting.py is the program used to fit the models. It was last used to fit the SMOTE-enhanced models
- Cutoff_and_Biases.py is the program used to explore varying the last layer's acitivation to impart bias to the model
- chart maker.py was used to make charts of the various accuracies for the final write up
The Final Analysis is here:
https://smaciolekdatascience.wordpress.com/2020/10/30/a-preliminary-look-at-the-utility-of-using-deep-learning-to-identify-abnormal-heartbeats/
References
- Shayan Fazeli. ECG Heartbeat Categorization Dataset. Retrieved June 30, 2020 from https://www.kaggle.com/shayanfazeli/heartbeat?select=mitbih_test.csv
- Mohammad Kachuee, Shayan Fazeli, and Majid Sarrafzadeh. “ECG Heartbeat Classification: A Deep Transferable Representation.” arXiv preprint arXiv:1805.00794 (2018).
- Nitesh V. Chawla, Kevin W. Bowyer, Lawrence O. Hall, and W. Philip Kegelmeyer. 2002. SMOTE: synthetic minority over-sampling technique. J. Artif. Int. Res. 16, 1 (January 2002), 321–357.