R Package: BCIFeatR
Published:
Package: BCIFeatR (Brain-Computer Interface Feature Engineering in R) Title: Feature Extraction Toolkit for EEG-based BCI Version: 0.1.0 Author: Yiming Shen License: MIT
Overview
BCIFeatR provides a unified train/test interface for extracting features from multi-channel EEG trial data. It is designed for offline BCI decoding pipelines where a consistent API across diverse feature families simplifies cross-session and cross-subject experimentation.
Supported Feature Methods
| Method | Description |
|---|---|
logvar | Log-variance of each channel |
logvar_pca | Log-variance after PCA projection |
CSP | Common Spatial Patterns |
FBCSP | Filter-Bank CSP |
FBCSSP | Filter-Bank CSSP (with time-delay embedding) |
TS | Tangent-space projection from covariance matrices |
ACM_TS | Augmented Covariance Matrix + tangent space |
Riemannian | Riemannian mean + log-map with optional geodesic/FGDA filtering |
ATM | Avalanche Transition Matrix |
Additional Utilities
- Covariance estimation — Ledoit–Wolf and OAS shrinkage estimators
- Riemannian geometry — SPD manifold operations (Riemannian mean, log/exp maps, geodesic filtering, FGDA)
- Bandpass filtering — Butterworth filter bank and data-driven frequency-band selection
- Feature selection — Fisher score, PCA, and MIBIF
- Classifiers — Fisher LDA and elastic-net multiclass classifier
Installation & Usage
# Install dependencies
install.packages(c("geigen", "gsignal"))
# Install from GitHub
remotes::install_github("Yiming-S/BCIFeatR", dependencies = TRUE)
Quick Start
library(BCIFeatR)
# Train — returns extracted features + fitted object
fit <- featEx4Train(x_train, y_train, feature = "CSP",
params = list(ncomps = 4L))
X_train <- fit$features
# Test — deterministic transform using the fitted object
X_test <- featEx4Test(x_test, fit$object, feature = "CSP")
