Isomap

Isomap is a method for low-dimensional embedding. Isomap is used for computing a quasi-isometric, low-dimensional embedding of a set of high-dimensional data points [1].

This package defines a Isomap type to represent a Isomap results, and provides a set of methods to access its properties.

Properties

Let M be an instance of Isomap, n be the number of observations, and d be the output dimension.

outdim(M)

Get the output dimension d, i.e the dimension of the subspace.

projection(M)

Get the projection matrix (of size (d, n)). Each column of the projection matrix corresponds to an observation in projected subspace.

neighbors(M)

The number of nearest neighbors used for approximating local coordinate structure.

ccomponent(M)

The observations index array of the largest connected component of the distance matrix.

Data Transformation

One can use the transform method to perform Isomap over a given dataset.

transform(Isomap, X; ...)

Perform Isomap over the data given in a matrix X. Each column of X is an observation.

This method returns an instance of Isomap.

Keyword arguments:

name description default
k The number of nearest neighbors for determining local coordinate structure. 12
d Output dimension. 2

Example:

using ManifoldLearning

# suppose X is a data matrix, with each observation in a column
# apply Isomap transformation to the dataset
Y = transform(Isomap, X; k = 12, d = 2)

References

[1]Tenenbaum, J. B., de Silva, V. and Langford, J. C. “A Global Geometric Framework for Nonlinear Dimensionality Reduction”. Science 290 (5500): 2319-2323, 22 December 2000. http://isomap.stanford.edu/