Megaman: Scalable Manifold Learning in Python

James McQueen, Marina Meilă, Jacob VanderPlas, Zhongyue Zhang; 17(148):1−5, 2016.


Manifold Learning (ML) is a class of algorithms seeking a low-dimensional non-linear representation of high-dimensional data. Thus, ML algorithms are most applicable to high- dimensional data and require large sample sizes to accurately estimate the manifold. Despite this, most existing manifold learning implementations are not particularly scalable. Here we present a Python package that implements a variety of manifold learning algorithms in a modular and scalable fashion, using fast approximate neighbors searches and fast sparse eigendecompositions. The package incorporates theoretical advances in manifold learning, such as the unbiased Laplacian estimator introduced by Coifman and Lafon (2006) and the estimation of the embedding distortion by the Riemannian metric method introduced by Perrault-Joncas and Meila (2013). In benchmarks, even on a single-core desktop computer, our code embeds millions of data points in minutes, and takes just 200 minutes to embed the main sample of galaxy spectra from the Sloan Digital Sky Survey--- consisting of 0.6 million samples in 3750-dimensions---a task which has not previously been possible.

[abs][pdf][bib]    [code][github]

Home Page




Editorial Board



Open Source Software




Contact Us

RSS Feed