Python Package: CrossDA

Published:

CrossDA cover

Package: CrossDA
Title: Cross-session EEG Classification and Domain Adaptation Pipelines
Language: Python
Authors: Yiming Shen and David Degras
License: MIT

Overview

CrossDA is the experiment runner for cross-session EEG classification. It evaluates several strategies for transferring a classifier across recording sessions of the same subject under leave-one-session-out protocols.

Toolkit Role

CrossDA sits between the method libraries and the dashboards. It executes the pipeline families and writes summary, detail, and session-role outputs that can be inspected downstream.

Feature and DA method banks -> CrossDA -> result files -> MSDA-Bench / custom analysis

Pipeline Families

  • MAP: Merge and Adapt, using all source sessions after supervised method selection.
  • DWP: Distance-Weighted Pooling, using soft inverse-distance source weights.
  • MMP: Minimum-distance Multi-source, using CI-gated source selection with merge-then-adapt or mixture-of-experts combiners.
  • BDP: Bridge-Domain Proxy, separating bridge and far sessions for proxy-tuned adaptation.

Main Capabilities

  • CLI and Python API for reproducible runs.
  • Method banks over feature families, classifiers, DA methods, and distance metrics.
  • Dataset support for BNCI2014-004, Stieger2021, and Ma2020 workflows.
  • Per-subject summaries, detailed run records, and role CSVs documenting source, bridge, far, and target session assignments.

View on GitHub