Class UMAP

java.lang.Object
smile.manifold.UMAP

public class UMAP extends Object
Uniform Manifold Approximation and Projection (UMAP).

UMAP is a nonlinear dimensionality reduction method designed for manifold visualization and unsupervised representation learning. It rests upon three key assumptions:

  • The data manifold is locally Riemannian.
  • The local metric is approximately constant in local neighborhoods.
  • The manifold is locally connected.

From these topological assumptions, high-dimensional data is represented as a weighted fuzzy simplicial set, and embedded into low dimensions by minimizing cross-entropy via stochastic gradient descent.

References

  • L. McInnes, J. Healy, and J. Melville. UMAP: Uniform Manifold Approximation and Projection for Dimension Reduction. arXiv:1802.03426, 2018.
  • How UMAP Works
See Also:
  • Method Details

    • fit

      public static double[][] fit(double[][] data, UMAP.Options options)
      Executes UMAP on coordinate observations using Euclidean distance.
      Parameters:
      data - input observations.
      options - algorithm hyperparameters.
      Returns:
      low-dimensional coordinates matrix.
    • fit

      public static <T> double[][] fit(T[] data, Metric<T> distance, UMAP.Options options)
      Executes UMAP with a custom metric distance function.
      Type Parameters:
      T - point data type.
      Parameters:
      data - input observations.
      distance - distance metric.
      options - algorithm hyperparameters.
      Returns:
      low-dimensional coordinates matrix.
    • fit

      public static <T> double[][] fit(T[] data, NearestNeighborGraph nng, UMAP.Options options)
      Executes UMAP using a precomputed nearest neighbor graph.
      Type Parameters:
      T - point data type.
      Parameters:
      data - input observations.
      nng - nearest neighbor graph.
      options - algorithm hyperparameters.
      Returns:
      low-dimensional coordinates matrix.