View on GitHub

kaggle-seizure-prediction

Work 2016-09 to 2016-12 on Melbourne University AES/MathWorks/NIH Seizure Prediction, Top 3% (13/478) ranking

Work for 2016-09 to 2016-12 on Melbourne University AES/MathWorks/NIH Seizure Prediction

  1. Overview
  2. Feature Extraction/Selection
  3. Models
  4. Code
  5. Possible Improvements
  6. Acknowledgments

Overview of the Challenge

The data provided for the challenge are 10-minute intracranial EEG (iEEG) signals from three persons with epilepsy. For the training data, the iEEG clips are categorized as occurring an hour prior to seizure (preictal) or at least 4 hours before or after a seizure during normal brain activity (interictal).

The goal of the challenge was to classify unlabelled iEEG signals from these patients as preictal or interictal. Performance was evaluated using the area under the ROC curve, between the predicted probability of the preictal class and the correct classification

Feature Extraction/Selection

I used only frequency data from the EEG electrical signals for each patient (due to lack of time), following an approach somewhat similar to

Junhua Li, Zbigniew Struzik, Liqing Zhang and Andrzej Cichocki. Feature learning from incomplete EEG with denoising autoencoder. Neurocomputing. 165 (2015) 25-36.

The details are as follows:

Models

Because I did not have enough time, my strategy was to average many different types of models together. The AUC values are from the public and private leaderboards, respectively.

General Linear Model

Neural Network

SVM

Ensemble

GLM

SVM

Average

Random Forest:

Final Ensemble:

Code

The code for my last submission and the instructions on how to run it is in the clean-code directory.

Possible Improvements

Acknowledgments

I received a complimentary MathWorks MATLAB license to use for the competition and used MATLAB for my feature selection code.