class_docstr: Spectral embedding of SPD matrices into an Euclidean space.
  
  It uses Laplacian Eigenmaps [1]_ to embed SPD matrices into an Euclidean
  space of smaller dimension. The basic hypothesis is that high-dimensional
  data lives in a low-dimensional manifold, whose intrinsic geometry can be
  described via the Laplacian matrix of a graph. The vertices of this graph
  are the SPD matrices and the weights of the links are determined by the
  Riemannian distance between each pair of them.
  
  Parameters
  ----------
  n_components : integer, default=2
      The dimension of the projected subspace.
  metric : string | dict, default='riemann'
      The type of metric to be used for defining pairwise distance between
      SPD matrices.
  eps : None | float, default=None
      The scaling of the Gaussian kernel. If none is given it will use the
      square of the median of pairwise distances between points.
  
  References
  ----------
  .. [1] `Laplacian Eigenmaps for dimensionality
      reduction and data representation
      <https://ieeexplore.ieee.org/document/6789755>`_
      M. Belkin and P. Niyogi, in Neural Computation, vol. 15, no. 6,
      p. 1373-1396 , 2003
docstr: Fit the model from data in X.
  
  Parameters
  ----------
  X : ndarray, shape (n_matrices, n_channels, n_channels)
      Set of SPD matrices.
  y : None
      Not used, here for compatibility with sklearn API.
  
  Returns
  -------
  self : object
      Returns the instance itself.
docstr_tok: ["Fit","the","model","from","data","in","X.","Parameters","--","--","--","--","--","X",":","ndarray",",","shape","(","n_matrices",",","n_channels",",","n_channels",")","Set","of","SPD","matrices",".","y",":","None","Not","used",",","here","for","compatibility","with","sklearn","API",".","Returns","--","--","--","-","self",":","object","Returns","the","instance","itself","."]
code: def fit(self, X, y=None):
      """Fit the model from data in X.
  
      Parameters
      ----------
      X : ndarray, shape (n_matrices, n_channels, n_channels)
          Set of SPD matrices.
      y : None
          Not used, here for compatibility with sklearn API.
  
      Returns
      -------
      self : object
          Returns the instance itself.
  
      """
      _check_dimensions(X, n_components=self.n_components)
  
      affinity_matrix = self._get_affinity_matrix(X, self.eps)
      embd = spectral_embedding(
          adjacency=affinity_matrix,
          n_components=self.n_components,
          norm_laplacian=True,
      )
  
      # normalize the embedding between -1 and +1
      embdn = 2 * (embd - embd.min(0)) / embd.ptp(0) - 1
      self.embedding_ = embdn
  
      return self
  
imports: import numpy
  from scipy.linalg import solve, eigh
  from scipy.sparse import csr_matrix
  from sklearn.base import BaseEstimator, TransformerMixin
  from sklearn.manifold import spectral_embedding
  from .utils.kernel import kernel
  from .utils.distance import pairwise_distance
label_desc: Use image node_id 3 for calling the SpectralEmbedding obj's underlying member method code with example usage: obj.fit(X, y) and returns: self