A technique for detecting affective states from electroencephalography (EEG) signals is proposed. The technique was tested in an experiment in virtual reality. Data were analyzed using Matlab, R, and Python.
Two variants of the technique were compared. The difference between both variants was the method used for feature selection. Those methods are Linear Mixed-Effects (LME) and Recursive Feature Elimination with Cross Validation (RFECV).
Read the paper here: https://www.frontiersin.org/articles/10.3389/frvir.2022.964754/full
- Install R (https://cran.r-project.org/)
- Clone this repository:
git clone [email protected]:aepinilla/affect_detection.git
- Download the 'data.zip' file from the OSF repository of the study: https://osf.io/7v9kt/
- Unzip data.zip and place it at the root of the folder you just cloned.
- Using the terminal, go to the root of the 'affect_detection' folder and run:
python main.py
The 'data' folder contains data that has been already preprocessed. To replicate the preprocessing steps, follow these instructions:
- Install Matlab.
- Install EEGLAB following these instructions: https://eeglab.org/tutorials/01_Install/Install.html
- Transform XDF files to CSV:
python xdf_to_csv.py
- Open EEGLAB in Matlab and run the preprocessing script located at affect_detection/src/preprocessing.m
All files generated by main.py will be stored in the 'reports' folder. In a MacBook Pro, it took several hours to run the program. If you want to skip that, download the 'reports.zip' file available in the OSF repository: https://osf.io/7v9kt/