https://github.com/dokato/bci-challange
Medicon 2019 BCI competition
https://github.com/dokato/bci-challange
bci erp lda machine-learning
Last synced: about 1 month ago
JSON representation
Medicon 2019 BCI competition
- Host: GitHub
- URL: https://github.com/dokato/bci-challange
- Owner: dokato
- Created: 2019-03-20T11:38:15.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2019-09-05T18:44:08.000Z (about 6 years ago)
- Last Synced: 2024-12-05T09:24:40.299Z (12 months ago)
- Topics: bci, erp, lda, machine-learning
- Language: MATLAB
- Homepage:
- Size: 45.9 KB
- Stars: 5
- Watchers: 4
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# bci-challange
## Data structure
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
```matlab
subj = '10';
session = '01';
data_load;
```
(data available here: http://www.medicon2019.org/scientific-challenge/)
## Dependencies
You need to add to your paths the following packages.
### Riemanian approach
Download and load `lib` folder from this package:
https://github.com/alexandrebarachant/covariancetoolbox
### Classification
Classification was done using ensemble implementation from the following package:
https://github.com/treder/MVPA-Light
## How to use it?
`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`.
## The best model
Our best model consists on combined ensemble approach with Riemanian features. Simplified steps are described below. For details, look at the code.
1. Make ensemble of features: different time windows size, different low-pass filters, subset of electrodes.
2. Create prototype (template) of the ERP response, as the trimmed mean over trials from single session of a participant.
3. Concatenate prototype with single trial signal.
4. Compute covariances (with shrinkage) and transform them to Riemanian space.
5. Calculate FGDA filters and perform geodesic filtering.
6. Take upper diagonal of resulting 2D features and train ensemble of LDA classifiers.
7. Perform cumulative probability vote per particular class (ERP or not).
To run the prediction of the best model, call simply: `createOutput.m`.
## Materials
http://www.medicon2019.org/scientific-challenge/
http://www.medicon2019.org/wp-content/uploads/ChallengeMediconDatasetDescription.pdf