pyriemann.utils.mean.mean_wasserstein

pyriemann.utils.mean.mean_wasserstein(covmats, tol=0.001, maxiter=50, init=None, sample_weight=None)[source]

Return the mean covariance matrix according to the wasserstein metric.

This is an iterative procedure where the update is [1]:

\[\mathbf{K} = \left(\sum_i \left( \mathbf{K} \mathbf{C}_i \mathbf{K} \right)^{1/2} \right)^{1/2}\]

with \(\mathbf{K} = \mathbf{C}^{1/2}\).

Parameters:
  • covmats – Covariance matrices set, Ntrials X Nchannels X Nchannels
  • tol – the tolerance to stop the gradient descent
  • maxiter – The maximum number of iteration, default 50
  • init – A covariance matrix used to initialize the iterative procedure. If None the Arithmetic mean is used
  • sample_weight – the weight of each sample
Returns:

the mean covariance matrix

References

[1] Barbaresco, F. “Geometric Radar Processing based on Frechet distance: Information geometry versus Optimal Transport Theory”, Radar Symposium (IRS), 2011 Proceedings International.