# 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 calculation results, and provides a set of methods to access its properties.

`ManifoldLearning.Isomap`

— Type`Isomap{NN <: AbstractNearestNeighbors} <: AbstractDimensionalityReduction`

The `Isomap`

type represents an isometric mapping model constructed with a help of the `NN`

nearest neighbor algorithm.

`StatsBase.fit`

— Method`fit(Isomap, data; k=12, maxoutdim=2, nntype=BruteForce)`

Fit an isometric mapping model to `data`

.

**Arguments**

`data`

: a matrix of observations. Each column of`data`

is an observation.

**Keyword arguments**

`k`

: a number of nearest neighbors for construction of local subspace representation`maxoutdim`

: a dimension of the reduced space.`nntype`

: a nearest neighbor construction class (derived from`AbstractNearestNeighbors`

)

**Examples**

```
M = fit(Isomap, rand(3,100)) # construct Isomap model
R = transform(M) # perform dimensionality reduction
```

`MultivariateStats.transform`

— Method`transform(R::Isomap)`

Transforms the data fitted to the Isomap model `R`

into a reduced space representation.

`MultivariateStats.transform`

— Method`transform(R::Isomap, X::AbstractVecOrMat)`

Returns a transformed out-of-sample data `X`

given the Isomap model `R`

into a reduced space representation.

## References

- 1Tenenbaum, 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.