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
code: def _get_affinity_matrix(self, X, eps):
      # make matrix with pairwise distances between points
      distmatrix = pairwise_distance(X, metric=self.metric)
  
      # determine which scale for the gaussian kernel
      if self.eps is None:
          eps = np.median(distmatrix) ** 2 / 2
  
      # make kernel matrix from the distance matrix
      kernel = np.exp(-(distmatrix**2) / (4 * eps))
  
      # normalize the kernel matrix
      q = np.dot(kernel, np.ones(len(kernel)))
      kernel_n = np.divide(kernel, np.outer(q, q))
  
      return kernel_n
  
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 2 for calling the SpectralEmbedding obj's underlying member method code with example usage: obj._get_affinity_matrix(X, eps) and returns: kernel_n