You need to have the following file structure:
utils/
split_test_by_target.m
...
data/
SBJ01/
SBJ01/
S01/
Train/
trainData.mat
trainEvents.txt
Test/
...
S02/
...
S03/
...
SBJ02/
...
Then (for given subject and session) you can simply call
subj = '10';
session = '01';
data_load;
(data available here: http://www.medicon2019.org/scientific-challenge/)
You need to add to your paths the following packages.
Download and load lib
folder from this package:
https://github.com/alexandrebarachant/covariancetoolbox
Classification was done using ensemble implementation from the following package: https://github.com/treder/MVPA-Light
sketch
script consist of different modelling approaches. In general we recommend running (reading) the scripts from make_prediction.m
, make_mult_prediction.m
or createOutput.m
.
Our best model consists on combined ensemble approach with Riemanian features. Simplified steps are described below. For details, look at the code.
- Make ensemble of features: different time windows size, different low-pass filters, subset of electrodes.
- Create prototype (template) of the ERP response, as the trimmed mean over trials from single session of a participant.
- Concatenate prototype with single trial signal.
- Compute covariances (with shrinkage) and transform them to Riemanian space.
- Calculate FGDA filters and perform geodesic filtering.
- Take upper diagonal of resulting 2D features and train ensemble of LDA classifiers.
- Perform cumulative probability vote per particular class (ERP or not).
To run the prediction of the best model, call simply: createOutput.m
.
http://www.medicon2019.org/scientific-challenge/
http://www.medicon2019.org/wp-content/uploads/ChallengeMediconDatasetDescription.pdf