Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/ahaque/arrhythmia-nn
Neural network for detecting cardiac dysrhythmia
https://github.com/ahaque/arrhythmia-nn
Last synced: 3 months ago
JSON representation
Neural network for detecting cardiac dysrhythmia
- Host: GitHub
- URL: https://github.com/ahaque/arrhythmia-nn
- Owner: ahaque
- Created: 2014-12-07T21:10:09.000Z (about 10 years ago)
- Default Branch: master
- Last Pushed: 2014-12-27T02:15:56.000Z (about 10 years ago)
- Last Synced: 2024-08-01T20:35:15.589Z (6 months ago)
- Language: Python
- Homepage:
- Size: 904 KB
- Stars: 15
- Watchers: 2
- Forks: 18
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- awesome-ai-cardiology - ahaque/arrhythmia-nn - [[Paper](http://cs229.stanford.edu/proj2014/Albert%20Haque,%20Cardiac%20Dysrhythmia%20Detection%20with%20GPU-Accelerated%20Neural%20Networks.pdf)] - Neural network for detecting cardiac dysrhythmia (Code / Repositories)
README
arrhythmia-nn
=============
##### Cardiac Dysrhythmia Detection with GPU-Accelerated Neural Networks
##### Last Updated: December 26, 2014### Poster & Paper
If you want an overview, you should read our [poster](http://albert.cm/dl/arrhythmia_poster.pdf). The [paper](http://albert.cm/dl/arrhythmia_paper.pdf) is more technical about algorithms and implementation details. The poster is slightly outdated so view the paper for the most current results.### Models
We use [scikit-learn](http://scikit-learn.org/stable/) for training and testing everything except neural networks. Located in [`./python/`](./python) are python scripts which train each model. The models are listed below:* Multiclass Logistic Regression
* Support Vector Machine (one-vs-all)
* Random Forest### Neural Network Implementation
Neural networks are implemented in MATLAB with the [Neural Network Toolbox](http://www.mathworks.com/products/neural-network/). These files are found in the [`./matlab/`](./matlab) folder. Each file is explained below:[`./matlab/nn_main.m`](./matlab/nn_main.m) - Iteratively trains several neural networks by varying several hyperparameters, training set size, and train/test ratios
[`./matlab/nn_single_iter.m`](./matlab/nn_single_iter.m) - Trains a single neural network using the specified parameters
[`./matlab/make_rse_plots.m`](./matlab/make_rse_plots.m) and [`./matlab/make_accuracy_plots.m`](./matlab/make_accuracy_plots.m) - Take input files containing results of the neural network tuning stage, generate, and format plots.
To train the network on the GPU, you must have the Mathwork's [Parallel Computing toolbox](http://www.mathworks.com/products/parallel-computing/).
### Data
We use the [Arrhythmia Data Set](https://archive.ics.uci.edu/ml/datasets/Arrhythmia) which is part of the UCI Machine Learning Repository. Our imputed dataset is located at
[`./data/data_clean_imputed.csv`](./data/data_clean_imputed.csv) and contains the clean data. As mentioned in the paper, [`./data/pca.csv`](./data/pca.csv) contains the principal components of the clean dataset. Matlab code to impute the original dataset is found in [`./matlab/impute.m`](./matlab/imputem) and is compatible with Octave.