ManifoldLearning.jl

The package ManifoldLearning aims to provide a library for manifold learning and non-linear dimensionality reduction. It provides set of nonlinear dimensionality reduction methods, such as Isomap, LLE, LTSA, and etc.

Getting started

To install the package just type

] add ManifoldLearning

A simple example of using the Isomap dimensionality reduction method on the build-in Swiss roll dataset, ManifoldLearning.swiss_roll.

julia> using ManifoldLearning

julia> X, _ = ManifoldLearning.swiss_roll();

julia> X
3×1000 Array{Float64,2}:
  1.32951  -6.69234  -9.22038  6.34445   …   -0.981841  5.6835    -0.957546
 19.3924    5.29136   9.79319  1.1422        23.6515    7.45804    9.41473
 -4.83851   5.63398   1.34406  0.471504     -10.8857    3.71888  -10.8035

julia> M = fit(Isomap, X)
Isomap{ManifoldLearning.BruteForce}(outdim = 2, neighbors = 12)

julia> Y = transform(M)
2×1000 Array{Float64,2}:
 -27.6041   -4.87907  -0.0331814  -19.7923   …  19.4394  -17.0605    19.348
  -2.11001   9.23147  13.3556      -1.64274     10.0209   -0.718558  10.0353

Methods

MethodsDescription
IsomapIsometric mapping
LLELocally Linear Embedding
HLLEHessian Eigenmaps
LEMLaplacian Eigenmaps
LTSALocal Tangent Space Alignment
DiffMapDiffusion maps

Notes: All methods implemented in this package adopt the column-major convention of JuliaStats: in a data matrix, each column corresponds to a sample/observation, while each row corresponds to a feature (variable or attribute).