Skip to content

R0kasB/ML.P2

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

70 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AgingBrain-Dynamics: Temporal State Modeling from EEG

EPFL CS-433 ML (Machine Learning) ML4Science project in colaboration with Psychophysics and Neural Dynamics lab; UNIL - CHUV Lausanne

Electroencephalography (EEG) measures electrical activity at the scalp and is already widely used in brain-computer interfaces, medicine, and cognitive neuroscience. Thanks to its non-invasive nature and low cost, EEG is poised to become even more central in fields like connected healthcare, and individualized learning. However, for EEG to reach its full potential, especially in everyday applications, new and standardized analysis pipelines are needed, leveraging machine learning and the increasing availability of large EEG datasets. In this context, Psychophysics and Neural Dynamics lab (PND) has developed a pipeline capable of extracting over 140 features from EEG signals. These features provide a high-dimensional and informative representation of an individual’s brain activity. Preliminary analyses suggest these features can reveal meaningful patterns related to variables such as age and pathological conditions. The project aims to extend Psychophysics and Neural Dynamics lab's work by analyzing the dynamics of these EEG features over time, rather than just their average values.

Project Overview:

Idea:

Use precomputed short-window EEG statistical features as temporal sequences, train a sequence model to learn age related structure, and test whether the learned representations support forecasting of future feature vectors within the same recording, with the goal of identifying age related oscillatory patterns in the data.

Tasks:

  1. item Review temporal EEG modeling methods for age prediction and time series forecasting.
  2. item Choose a channel reduction strategy suited to the model.
  3. item Train the model to extract temporal dynamics and relate them to age.
  4. item Test whether the learned dynamics supports short-term feature forecasting.
  5. item Identify which dynamic patterns, including sporadic events if captured, are most predictive or correlated with age.

Quickstart

Project uses Pixi by prefix.dev as its package manager.
Install Pixi from:

https://pixi.sh/latest/installation/

To get started:

# clone project
git clone https://github.com/R0kasB/ML.P2.git
cd ML.P2

# install requirements
pixi install

# activate env and download the data
pixi shell
python src/data/download_and_extract.py

Project Structure

├── data                      <- Project data files
│   ├── raw                   <- Original files (data epochs)
│   └── test_data             <- Test data from DynaMix-python library
│
├── notebooks                 <- Notebooks of the project
│   ├── README.md             <- Overview of the models (instructions)
│   ├── EEGMamba              <- Implementation of EEGMamba
│   ├── RandomTreeForest      <- Implementation of RF
│   ├── RNN                   <- Implementation of RNN
│   ├── darts_RNN_BlockRNN_regression.ipynb     <- Implementation of RNN, BlockRNN
│   ├── data_visualisations.ipynb               <- Visualization of the original data
│   └── DynaMix-implementation.ipynb            <- Implementation of DynaMix 
│
├── src                       <- Project source code
│   ├── data                  <- Dataloaders and preprocessing
│   └── dynamix               <- src code for DynaMix-python
│
├── basic_predic.png          <- Regresion results from the ML4Science lab
│
├── pixi.lock                 <- Fully pinned environment lockfile generated by 
├── pixi.toml                 <- Environment specification
└── README.md                 <- Project description and instructions

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors