# Hessian Eigenmaps

The Hessian Eigenmaps (Hessian LLE, HLLE) method adapts the weights in `LLE`

to minimize the Hessian operator. Like `LLE`

, it requires careful setting of the nearest neighbor parameter. The main advantage of Hessian LLE is the only method designed for non-convex data sets ^{[1]}.

This package defines a `HLLE`

type to represent a Hessian LLE results, and provides a set of methods to access its properties.

`ManifoldLearning.HLLE`

— Type`HLLE{NN <: AbstractNearestNeighbors, T <: Real} <: AbstractDimensionalityReduction`

The `HLLE`

type represents a Hessian eigenmaps model constructed for `T`

type data with a help of the `NN`

nearest neighbor algorithm.

`StatsBase.fit`

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

Fit a Hessian eigenmaps 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(HLLE, rand(3,100)) # construct Hessian eigenmaps model
R = transform(M) # perform dimensionality reduction
```

`MultivariateStats.transform`

— Method`transform(R::LLE)`

Transforms the data fitted to the Hessian eigenmaps model `R`

into a reduced space representation.

# References

- 1Donoho, D. and Grimes, C. "Hessian eigenmaps: Locally linear embedding techniques for high-dimensional data", Proc. Natl. Acad. Sci. USA. 2003 May 13; 100(10): 5591–5596. DOI:10.1073/pnas.1031596100