EEG-Based Dementia Classification

Medical AI2026HealthcareSignal Processing

Classifying Alzheimer’s disease, frontotemporal dementia and healthy controls from resting-state EEG, with participant-wise cross-validation and a check against random labels.

The challenge

EEG is cheap and non-invasive, but the signals are noisy and the differences between dementia types are subtle. With only 88 participants it is also easy to get artificially good results if data from the same person ends up in both training and test.

The solution

Two kinds of representation were compared: spectral and wavelet features per brain region (Welch spectra with relative band powers and measures of EEG slowing, plus db4 wavelets), and covariance matrices between the 19 channels projected to the tangent space of a Riemannian manifold. Both were classified with a linear SVM and assessed per participant.

How it was built

The project was carried out in a group; I contributed across data processing, modelling and evaluation. The data was a public, preprocessed resting-state EEG dataset (OpenNeuro ds004504) with 88 participants (36 with Alzheimer’s, 23 with frontotemporal dementia and 29 controls), split into 4-second epochs. All evaluation used stratified, participant-grouped 5-fold cross-validation, keeping all epochs from one person in the same fold, and the Riemannian model pools epoch predictions into one prediction per participant. A permutation test with random labels, a learning curve and interpretation of the most important channel pairs were used to check the result.

Result

The Riemannian approach reached a macro-F1 of about 0.65 per participant, against 0.56 for the best spectral baseline and about 0.36 with randomly permuted labels. Frontotemporal dementia was clearly the hardest class to separate.

Context

This is a classification experiment on a small, retrospective research dataset, not a diagnostic tool. The result is moderate, regularisation was tuned on the same folds without nested validation, and the permutation test used few runs.

Technologies and methods

PythonMNE-PythonSciPy (Welch)PyWaveletspyriemannscikit-learn (linear SVM, StratifiedGroupKFold)Permutation testLearning curve