class_docstr: Tangent space project TransformerMixin.
  
  Tangent space projection map a set of SPD matrices to their
  tangent space according to [1]_. The Tangent space projection can be
  seen as a kernel operation, cf [2]_. After projection, each matrix is
  represented as a vector of size :math:`n (n+1)/2`, where :math:`n` is the
  dimension of the SPD matrices.
  
  Tangent space projection is useful to convert SPD matrices in
  Euclidean vectors while conserving the inner structure of the manifold.
  After projection, standard processing and vector-based classification can
  be applied.
  
  Tangent space projection is a local approximation of the manifold. it takes
  one parameter, the reference point, that is usually estimated using the
  geometric mean of the SPD matrices set you project. If the function
  `fit` is not called, the identity matrix will be used as reference point.
  This can lead to serious degradation of performances.
  The approximation will be bigger if the matrices in the set are scattered
  in the manifold, and lower if they are grouped in a small region of the
  manifold.
  
  After projection, it is possible to go back in the manifold using the
  inverse transform.
  
  Parameters
  ----------
  metric : string | dict, default='riemann'
      The type of metric used for reference matrix estimation (see
      `mean_covariance` for the list of supported metric) and for tangent
      space map (see `tangent_space` for the list of supported metric).
      The metric could be a dict with two keys, `mean` and `map` in
      order to pass different metrics for the reference matrix estimation
      and the tangent space mapping.
  tsupdate : bool, default=False
      Activate tangent space update for covariante shift correction between
      training and test, as described in [2]_. This is not compatible with
      online implementation. Performance are better when the number of
      matrices for prediction is higher.
  
  Attributes
  ----------
  reference_ : ndarray
      If fit, the reference point for tangent space mapping.
  
  See Also
  --------
  FgMDM
  FGDA
  
  References
  ----------
  .. [1] `Multiclass Brain-Computer Interface Classification by Riemannian
      Geometry
      <https://hal.archives-ouvertes.fr/hal-00681328>`_
      A. Barachant, S. Bonnet, M. Congedo, and C. Jutten. IEEE Transactions
      on Biomedical Engineering, vol. 59, no. 4, p. 920-928, 2012.
  .. [2] `Classification of covariance matrices using a Riemannian-based
      kernel for BCI applications
      <https://hal.archives-ouvertes.fr/hal-00820475/>`_
      A. Barachant, S. Bonnet, M. Congedo and C. Jutten. Neurocomputing,
      Elsevier, 2013, 112, pp.172-178.
docstr: Fit (estimates) the reference point.
  
  Parameters
  ----------
  X : ndarray, shape (n_matrices, n_channels, n_channels)
      Set of SPD matrices.
  y : None
      Not used, here for compatibility with sklearn API.
  sample_weight : None | ndarray, shape (n_matrices,), default=None
      Weights for each matrix. If None, it uses equal weights.
  
  Returns
  -------
  self : TangentSpace instance
      The TangentSpace instance.
docstr_tok: ["Fit","(","estimates",")","the","reference","point",".","Parameters","--","--","--","--","--","X",":","ndarray",",","shape","(","n_matrices",",","n_channels",",","n_channels",")","Set","of","SPD","matrices",".","y",":","None","Not","used",",","here","for","compatibility","with","sklearn","API",".","sample_weight",":","None","|","ndarray",",","shape","(","n_matrices",",",")",",","default=None","Weights","for","each","matrix",".","If","None",",","it","uses","equal","weights",".","Returns","--","--","--","-","self",":","TangentSpace","instance","The","TangentSpace","instance","."]
code: def fit(self, X, y=None, sample_weight=None):
      """Fit (estimates) the reference point.
  
      Parameters
      ----------
      X : ndarray, shape (n_matrices, n_channels, n_channels)
          Set of SPD matrices.
      y : None
          Not used, here for compatibility with sklearn API.
      sample_weight : None | ndarray, shape (n_matrices,), default=None
          Weights for each matrix. If None, it uses equal weights.
  
      Returns
      -------
      self : TangentSpace instance
          The TangentSpace instance.
      """
      self.metric_mean, self.metric_map = self._check_metric(
          self.metric
      )
  
      self.reference_ = mean_covariance(
          X, metric=self.metric_mean, sample_weight=sample_weight
      )
      return self
  
imports: import numpy
  from sklearn.base import BaseEstimator, TransformerMixin
  from .utils.utils import check_version
  from .utils.mean import mean_covariance
  from .utils.tangentspace import tangent_space, untangent_space
label_desc: Use image node_id 2 for calling the TangentSpace obj's underlying member method code with example usage: obj.fit(X, y, sample_weight) and returns: self