pyriemann.utils.mean.mean_wasserstein

pyriemann.utils.mean.mean_wasserstein(X, tol=1e-08, maxiter=50, init=None, sample_weight=None)

Mean of SPD/HPD matrices according to the Wasserstein metric.

Wasserstein mean [1] is implemented as the inductive mean [2], adapted to the same convergence criterion as the Riemannian mean.

Parameters:
Xndarray, shape (n_matrices, n, n)

Set of SPD/HPD matrices.

tolfloat, default=10e-9

Tolerance to stop the gradient descent.

maxiterint, default=50

Maximum number of iterations.

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

A SPD/HPD matrix used to initialize the gradient descent. If None the Euclidean mean is used.

sample_weightNone | ndarray, shape (n_matrices,), default=None

Weights for each matrix. If None, it uses equal weights.

Returns:
Mndarray, shape (n, n)

Wasserstein mean.

See also

mean_covariance

References

[1]

Barycenters in the Wasserstein space M. Agueh and G. Carlier. SIAM Journal on Mathematical Analysis, 2011

[2]

Barycenter Estimation of Positive Semi-Definite Matrices with Bures-Wasserstein Distance J. Zheng, H. Huang, Y. Yi, Y. Li, S.-C. Lin, ArXiv, 2023