class_docstr: Locally Linear Embedding (LLE) of SPD matrices.
  
  As proposed in [1]_, Locally Linear Embedding (LLE) is a non-linear,
  neighborhood-preserving dimensionality reduction algorithm which
  consists of three main steps. For each point x,
  
  1.  find its k nearest neighbors KNN(x) and
  2.  calculate the best reconstruction of x based on its KNN.
  3.  Then calculate a low-dimensional embedding for all points based on
      the weights in step 2.
  
  This implementation using SPD matrices is based on [2]_.
  
  Parameters
  ----------
  n_components : int, default=2
      Dimensionality of projected space.
  n_neighbors : int, default=5
      Number of neighbors for reconstruction of each point.
  metric : {'riemann', 'logeuclid', 'euclid'}, default: 'riemann'
      Metric used for KNN and Kernel estimation.
  reg : float, default=1e-3
      Regularization parameter.
  
  Attributes
  ----------
  embedding_ : ndarray, shape (n_matrices, n_components)
      Stores the embedding vectors.
  error_ : float
      Reconstruction error associated with `embedding_`.
  data_ : ndarray, shape (n_matrices, n_channels, n_channels)
      Training data.
  
  Notes
  -----
  .. versionadded:: 0.3
  
  References
  ----------
  .. [1] `Nonlinear Dimensionality Reduction by
      Locally Linear Embedding
      <https://www.science.org/doi/10.1126/science.290.5500.2323>`_
      S. Roweis and L. K. Saul, in Science, Vol 290, Issue 5500, pp.
      2323-2326, 2000.
  .. [2] `Clustering and dimensionality reduction
      on Riemannian manifolds
      <https://ieeexplore.ieee.org/document/4587422>`_
      A. Goh and R. Vidal, in 2008 IEEE Conference on Computer Vision and
      Pattern Recognition
docstr: Calculate the coordinates of the embedded points.
  
  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
  -------
  X_new : ndarray, shape (n_matrices, n_components)
      Coordinates of embedded matrices.
docstr_tok: ["Calculate","the","coordinates","of","the","embedded","points",".","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","--","--","--","-","X_new",":","ndarray",",","shape","(","n_matrices",",","n_components",")","Coordinates","of","embedded","matrices","."]
code: def fit_transform(self, X, y=None):
      """Calculate the coordinates of the embedded points.
  
      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
      -------
      X_new : ndarray, shape (n_matrices, n_components)
          Coordinates of embedded matrices.
      """
      self.fit(X)
      return self.embedding_
  
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 4 for calling the LocallyLinearEmbedding obj's underlying member method code with example usage: obj.fit_transform(X, y) and returns: self