This project extends the foundational work of Miltiadous et al. (2023) by developing advanced machine learning classifiers for distinguishing between Alzheimer's Disease (AD), Frontotemporal Dementia (FTD), and healthy controls using EEG data. The study implements comprehensive feature engineering, class imbalance handling, and rigorous validation techniques that reveal both the potential and fundamental limitations of current EEG-based approaches.
Source: Miltiadous et al. (2023) EEG dataset from OpenNeuro (ds004504)
- Participants: 88 subjects (36 AD, 23 FTD, 29 controls)
- Recording: 19-channel resting-state EEG, eyes-closed condition
- Format: BIDS-compliant preprocessed data
# Install OpenNeuro CLI
npm install -g @openneuro/cli
# Login to OpenNeuro
openneuro login
# Download dataset
openneuro download --snapshot 1.0.7 ds004504 ds004504-download/- Advanced Feature Engineering: Extended beyond basic spectral features to include connectivity measures and hemispheric asymmetry
- Systematic Resampling Evaluation: Tested 7 different techniques for handling class imbalance
- Rigorous Validation: Conservative cross-validation with stratified k-fold approach
- MLflow Integration: Comprehensive experiment tracking for reproducibility
- Limitation Documentation: Quantified fundamental challenges in multi-class dementia classification
- Binary Classification Approach: Developed clinically-oriented disease vs. healthy screening model
- Cross-Validation Accuracy: 65.2% ± 8.4%
- Test Accuracy: 67.7%
- Generalization: Good (2.6% gap between CV and test)
- FTD Detection: 12.5% recall (critical limitation)
- Conclusion: Clinically unsuitable due to poor FTD discrimination, despite good generalization
| Metric | Alzheimer's | Frontotemporal | Control |
|---|---|---|---|
| Precision | 0.80 | 0.33 | 0.62 |
| Recall | 0.92 | 0.12 | 0.80 |
| F1-Score | 0.86 | 0.18 | 0.70 |
Key Insight: The multiclass model generalizes well but has fundamentally insufficient accuracy for clinical use. The confusion matrix reveals the model's critical failure in FTD detection, with most FTD cases misclassified as Alzheimer's or controls.
- Cross-Validation Accuracy: 74.6% ± 9.0%
- Test Accuracy: 77.8%
- Generalization: Excellent (3.1% gap)
- Sensitivity: 77.8% (disease detection)
- Specificity: 77.8% (healthy identification)
| Metric | Disease | Healthy |
|---|---|---|
| Precision | 0.88 | 0.64 |
| Recall | 0.78 | 0.78 |
| F1-Score | 0.82 | 0.70 |
The binary classifier shows balanced performance across both classes, making it suitable for preliminary screening applications.
| Study | Classification | Method | CV Accuracy | Generalization |
|---|---|---|---|---|
| Miltiadous et al. (2023) | AD vs. Controls | RBP + Random Forests | 77.0% | Not reported |
| Miltiadous et al. (2023) | FTD vs. Controls | RBP + MLP | 73.1% | Not reported |
| This Study | AD vs. FTD vs. Controls | Enhanced Features + XGBoost | 65.2% | Good (2.6% gap) |
| This Study | Disease vs. Controls | Enhanced Features + XGBoost | 74.6% | Excellent (3.1% gap) |
- Multi-class limitation: Poor FTD detection (12.5% recall) demonstrates fundamental limitations of resting-state EEG for dementia type discrimination
- Binary screening potential: 74.6% CV accuracy with excellent generalization shows promise for preliminary disease detection
- Resampling analysis: Original (no resampling) performed best for multiclass; SMOTE optimal for binary classification
- Feature engineering impact: Binary model benefited from 31 engineered features reduced to 25 selected features
- Good generalization: Both models show strong generalization (< 3.2% gaps), indicating adequate regularization
The binary classification approach shows moderate potential for preliminary screening with robust generalization. The multi-class model's failure to distinguish dementia types (particularly FTD) represents an important negative result: the limitation is not model architecture or overfitting, but rather the fundamental challenge of using resting-state EEG alone for dementia subtype classification.
This project uses MLflow for comprehensive experiment tracking:
# Launch MLflow UI
mlflow ui├── analyze.ipynb # Main analysis notebook with MLflow integration
├── data/
│ ├── participants.tsv # Subject demographics
│ ├── extracted_features.csv # Engineered features
│ └── performance_comparison.csv
├── train_test_splits/ # Data splits
├── mlruns/ # MLflow tracking data
├── models/ # Trained models
│ ├── multiclass_xgb_model_20250929.pkl
│ └── binary_xgb_model_20250929.pkl
└── README.md
- Python 3.8+
- MNE-Python
- XGBoost
- scikit-learn
- imbalanced-learn
- mlflow
- pandas, numpy, matplotlib, seaborn
Built upon the dataset from: Miltiadous, A., et al. (2023). A Dataset of Scalp EEG Recordings of Alzheimer's Disease, Frontotemporal Dementia and Healthy Subjects from Routine EEG. Data, 8(6), 95.

