pyriemann.datasets.sample_gaussian_spd

pyriemann.datasets.sample_gaussian_spd(n_matrices, mean, sigma, random_state=None, n_jobs=1, sampling_method='auto')

Sample a Riemannian Gaussian distribution.

Sample SPD matrices from a Riemannian Gaussian distribution centered at mean and with dispersion parametrized by sigma. This distribution has been defined in [1] and generalizes the notion of a Gaussian distribution to the space of SPD matrices. The sampling is based on a spectral factorization of SPD matrices in terms of their eigenvectors (U-parameters) and the log of the eigenvalues (r-parameters).

Parameters:
n_matricesint

How many matrices to generate.

meanndarray, shape (n_dim, n_dim)

Center of the Riemannian Gaussian distribution.

sigmafloat

Dispersion of the Riemannian Gaussian distribution.

random_stateint, RandomState instance or None, default=None

Pass an int for reproducible output across multiple function calls.

n_jobsint, default=1

The number of jobs to use for the computation. This works by computing each of the class centroid in parallel. If -1 all CPUs are used.

sampling_methodstr, default=’auto’

Sampling method to sample eigenvalues. It can be ‘auto’, ‘slice’ or ‘rejection’. If it is ‘auto’, the sampling_method will be equal to ‘slice’ for n_dim != 2 and equal to ‘rejection’ for n_dim = 2.

New in version 0.4.

Returns:
samplesndarray, shape (n_matrices, n_dim, n_dim)

Samples of the Riemannian Gaussian distribution.

Notes

New in version 0.3.

References

[1]

Riemannian Gaussian distributions on the space of symmetric positive definite matrices S. Said, L. Bombrun, Y. Berthoumieu, and J. Manton. IEEE Trans Inf Theory, vol. 63, pp. 2153–2170, 2017.