# pyriemann.utils.kernel.kernel_riemann¶

pyriemann.utils.kernel.kernel_riemann(X, Y=None, *, Cref=None, reg=1e-10)

Affine-invariant Riemannian kernel between two sets of SPD matrices.

Calculates the affine-invariant Riemannian kernel matrix $$\mathbf{K}$$ of inner products of two sets $$\mathbf{X}$$ and $$\mathbf{Y}$$ of SPD matrices in $$\mathbb{R}^{n \times n}$$ on tangent space at $$\mathbf{C}_\text{ref}$$ by calculating pairwise products :

$\mathbf{K}_{i,j} = \text{tr}( \log( \mathbf{C}_\text{ref}^{-1/2} \mathbf{X}_i \mathbf{C}_\text{ref}^{-1/2} ) \log( \mathbf{C}_\text{ref}^{-1/2} \mathbf{Y}_j \mathbf{C}_\text{ref}^{-1/2}) )$
Parameters:
Xndarray, shape (n_matrices_X, n, n)

First set of SPD matrices.

YNone | ndarray, shape (n_matrices_Y, n, n), default=None

Second set of SPD matrices. If None, Y is set to X.

CrefNone | ndarray, shape (n, n), default=None

Reference point for the tangent space and inner product calculation. If None, Cref is calculated as the Riemannian mean of X.

regfloat, default=1e-10

Regularization parameter to mitigate numerical errors in kernel matrix estimation.

Returns:
Kndarray, shape (n_matrices_X, n_matrices_Y)

The affine-invariant Riemannian kernel matrix between X and Y.

Notes

New in version 0.3.

References



Classification of covariance matrices using a Riemannian-based kernel for BCI applications A. Barachant, S. Bonnet, M. Congedo and C. Jutten. Neurocomputing, Elsevier, 2013, 112, pp.172-178.