pyRiemann/pyRiemann
Machine learning for multivariate data through the Riemannian geometry of positive definite matrices in Python
What it solves
pyRiemann is a machine learning package designed for the processing and classification of multivariate data, specifically focusing on symmetric positive definite (SPD) and Hermitian positive definite (HPD) matrices. It addresses the challenge of analyzing multichannel time series data (like biosignals) by treating covariance matrices as points on a curved Riemannian manifold rather than in a flat Euclidean space.
How it works
The library provides a high-level interface based on the scikit-learn API, allowing users to estimate covariance matrices from multichannel data and then classify them using Riemannian geometry. It supports both NumPy and PyTorch backends via the Python Array API, which enables GPU acceleration and autograd capabilities when PyTorch tensors are used.
Who it’s for
It is primarily aimed at researchers and developers working with biosignals (such as EEG, MEG, or EMG) for brain-computer interfaces (BCI), as well as those working in remote sensing (e.g., hyperspectral or SAR images) where covariance matrices are used for spatial analysis.
Highlights
- scikit-learn Compatibility: Mimics the scikit-learn API for easy integration into pipelines and cross-validation workflows.
- Multi-backend Support: Transparently supports NumPy and PyTorch for optional GPU acceleration.
- ** uma Transfer Learning**: Supports multisource transfer learning between sessions or subjects using extended labels.
- Broad Application Range: Applicable to motor imagery, event-related potentials (ERP), and steady-state visually evoked potentials (SSVEP) in BCI applications.
Related
- Project
- Project
- Project
- Project
- Project