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
code: def __init__(
      self, n_components=2, n_neighbors=5, metric="riemann", reg=1e-3
  ):
      self.n_components = n_components
      self.n_neighbors = n_neighbors
      self.metric = metric
      self.reg = reg
  
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 1 to create a new LocallyLinearEmbedding object from inherited base classes: BaseEstimator, TransformerMixin with example: obj = LocallyLinearEmbedding(n_components, n_neighbors, metric, reg)