Class Isomap

Class Documentation

class Isomap

Isometric feature mapping. Isomap is a widely used low-dimensional embedding methods, where geodesic distances on a weighted graph are incorporated with the classical multidimensional scaling. Isomap is used for computing a quasi-isometric, low-dimensional embedding of a set of high-dimensional data points. Isomap is highly efficient and generally applicable to a broad range of data sources and dimensionalities.

References

  1. J. B. Tenenbaum, V. de Silva and J. C. Langford A Global Geometric Framework for Nonlinear Dimensionality Reduction. Science 290(5500):2319-2323, 2000.

Public Functions

Isomap(std::optional<int> n_neighbors = 5, std::optional<double> radius = std::nullopt, int n_components = 2, int max_iter = 100, double eps = 1e-4, double learning_rate = 0.2, int random_state = 0, const std::string &neighbors_algorithm = "auto", const std::string &metric = "euclidean")

Constructor.

Parameters
  • n_neighbors – the number of nearest neighbors to search for. If present, ‘radius’ must be std::nullopt.

  • radius – the nearest neighbors search radius. If present, ‘n_neighbors’ must be std::nullopt.

  • n_components – the dimension of the projection.

  • max_iterMDS parameter.

  • epsMDS parameter.

  • learning_rateMDS parameter.

  • random_stateMDS parameter.

  • neighbors_algorithm – algorithm to use for nearest neighbors search. Supported: ‘auto’, ‘brute’, ‘cover_tree’

  • metric – metric for nearest neighbors search.

~Isomap()
Matrix fitTransform(const Eigen::Ref<const Matrix> &x)

Fit mapping.

Parameters

x – training data.

Throws

std::invalid_argument – if ‘neighbors_algorithm’ is unknown, or ‘n_neighbors’ and ‘radius’ are incompatible.

Returns

the projected coordinates.

Public Members

NearestNeighbors *nbrs_

Stores nearest neighbors instance.

Matrix dist_matrix_

Stores the geodesic distance matrix of training data.