← All projects

EEG Workload Classifier

Logistic-regression and CNN baselines for classifying mental workload levels from raw EEG signals.

Why it mattersA reproducible biosignal-classification pipeline - frequency-domain feature engineering, dimensionality reduction, and apples-to-apples evaluation across linear and deep baselines.

PythonKerasscikit-learnSciPy

What it does

Mental-workload classification from raw EEG signals via two complementary models: a lightweight, interpretable logistic regression and a deeper CNN. Both share the same feature pipeline and cross-validation harness so results are directly comparable.

Where it applies

  • Biosignal research where reproducibility matters more than a single big model - the linear baseline is there to show the deep model is doing actual work, not just overfitting.
  • A teaching example for frequency-domain feature engineering on physiological signals: Fourier transforms, band-power features, and dimensionality reduction.
  • The pattern transfers to other multi-channel time-series classification problems - swap EEG for IMU, ECG, or EMG and the same scaffolding applies.

How it works (high level)

Raw .mat EEG files are preprocessed and split with K-fold and stratified K-fold cross-validation. Frequency-domain features (FFT-based band power per channel) feed the logistic-regression baseline; the same windows feed a CNN that learns its own filters. Outputs include per-fold accuracy, confusion matrices, and training curves, so the comparison is auditable.

Outcome

An apples-to-apples comparison of a linear baseline and a deep model on the same biosignal task, with a reusable feature-engineering and evaluation harness.

Stack

Python · Keras · scikit-learn · SciPy · NumPy.