coco_pipe.transforms.subject_alignment#

Experimental: subject-axis removal for frozen embedding vectors.

Attributes#

Classes#

SubjectAlignment

Base class for subject-alignment estimators.

LeaceEraser

Fold-local LEACE projection of the between-subject linear subspace.

EuclideanAlign

Per-subject mean or CORAL alignment, including unseen subjects.

RiemannAlign

Per-subject Riemannian recentering followed by tangent projection.

Functions#

tokens_to_covariances(tokens, *[, shrinkage])

Convert (window, token, feature) tensors to regularized SPD matrices.

make_subject_transform(name, **params)

Instantiate a registered subject transform by name.

Module Contents#

class coco_pipe.transforms.subject_alignment.SubjectAlignment#

Bases: sklearn.base.BaseEstimator, sklearn.base.TransformerMixin

Base class for subject-alignment estimators.

name = 'identity'#
fold_local: bool = False#
fingerprint()#
Return type:

str

class coco_pipe.transforms.subject_alignment.LeaceEraser(*, shrinkage=True, degenerate_frac=0.95)#

Bases: SubjectAlignment

Fold-local LEACE projection of the between-subject linear subspace.

Parameters:
name = 'leace'#
fold_local = True#
shrinkage = True#
degenerate_frac = 0.95#
fit(X, y=None, groups=None)#
transform(X, groups=None)#
fit_transform(X, y=None, groups=None, **fit_params)#

Fit the LEACE projector and transform the same observations.

class coco_pipe.transforms.subject_alignment.EuclideanAlign(mode='coral', *, shrinkage=True)#

Bases: SubjectAlignment

Per-subject mean or CORAL alignment, including unseen subjects.

Parameters:
mode = 'coral'#
name = 'ea_coral'#
shrinkage = True#
fit(X, y=None, groups=None)#
transform(X, groups=None)#
fit_transform(X, y=None, groups=None, **fit_params)#

Fit subject statistics and transform the same observations.

coco_pipe.transforms.subject_alignment.tokens_to_covariances(tokens, *, shrinkage=0.1)#

Convert (window, token, feature) tensors to regularized SPD matrices.

Parameters:
Return type:

numpy.ndarray

class coco_pipe.transforms.subject_alignment.RiemannAlign(*, shrinkage=0.1)#

Bases: SubjectAlignment

Per-subject Riemannian recentering followed by tangent projection.

Parameters:

shrinkage (float)

name = 'ra'#
shrinkage = 0.1#
fit(X, y=None, groups=None)#
transform(X, groups=None)#
fit_transform(X, y=None, groups=None, **fit_params)#

Fit subject references and transform the same token windows.

coco_pipe.transforms.subject_alignment.VECTOR_TRANSFORMS#
coco_pipe.transforms.subject_alignment.TOKEN_TRANSFORMS#
coco_pipe.transforms.subject_alignment.make_subject_transform(name, **params)#

Instantiate a registered subject transform by name.

Parameters:
  • name (str)

  • params (Any)

Return type:

SubjectAlignment