Git Product home page Git Product logo

megaman's Introduction

megaman: Manifold Learning for Millions of Points

build status version status license

megaman is a scalable manifold learning package implemented in python. It has a front-end API designed to be familiar to scikit-learn but harnesses the C++ Fast Library for Approximate Nearest Neighbors (FLANN) and the Sparse Symmetric Positive Definite (SSPD) solver Locally Optimal Block Precodition Gradient (LOBPCG) method to scale manifold learning algorithms to large data sets. On a personal computer megaman can embed 1 million data points with hundreds of dimensions in 10 minutes. megaman is designed for researchers and as such caches intermediary steps and indices to allow for fast re-computation with new parameters.

Package documentation can be found at http://mmp2.github.io/megaman/

You can also find our arXiv paper at http://arxiv.org/abs/1603.02763

Examples

Installation with Conda

The easiest way to install megaman and its dependencies is with conda, the cross-platform package manager for the scientific Python ecosystem.

To install megaman and its dependencies, run

$ conda install megaman --channel=conda-forge

Currently builds are available for OSX and Linux, on Python 2.7, 3.4, and 3.5. For other operating systems, see the full install instructions below.

Installation from source

To install megaman from source requires the following:

Optional requirements include

  • pyamg, which allows for faster decompositions of large matrices
  • pyflann which offers another method of computing distance matrices (this is bundled with the FLANN source code)
  • nose for running the unit tests

These requirements can be installed on Linux and MacOSX using the following conda command:

$ conda install --channel=conda-forge pip nose coverage gcc cython numpy scipy scikit-learn pyflann pyamg

Finally, within the source repository, run this command to install the megaman package itself:

$ python setup.py install

Unit Tests

megaman uses nose for unit tests. With nose installed, type

$ make test

to run the unit tests. megaman is tested on Python versions 2.7, 3.4, and 3.5.

Authors

Other Contributors

  • Xiao Wang: lazy rmetric, Nystrom Extension

Future Work

See this issues list for what we have planned for upcoming releases:

Future Work

megaman's People

Contributors

jakevdp avatar jmcq89 avatar mmp2 avatar jerryzcn avatar ohkhan avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.