All Projects → jmbr → diffusion-maps

jmbr / diffusion-maps

Licence: MIT license
Fast computation of diffusion maps and geometric harmonics in Python

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to diffusion-maps

A71-Hidden-Mods
A magisk module adding some mods to your Galaxy A71 systemlessly.
Stars: ✭ 16 (-55.56%)
Mutual labels:  module
zscilib
An open-source scientific computing library for embedded systems running Zephyr OS or standalone.
Stars: ✭ 85 (+136.11%)
Mutual labels:  module
netdev stdlib
Netdev is a vendor-neutral network abstraction framework maintained by Puppet, Inc
Stars: ✭ 30 (-16.67%)
Mutual labels:  module
shopyo
shopyo.readthedocs.org
Stars: ✭ 66 (+83.33%)
Mutual labels:  module
nim-mod
A Nim MOD player just for fun
Stars: ✭ 40 (+11.11%)
Mutual labels:  module
JB2A DnD5e
Templates of spells from the DnD5e ruleset (SRD and PHB), to use on FoundryVTT
Stars: ✭ 28 (-22.22%)
Mutual labels:  module
TairString
A redis module, similar to redis string, but you can set expire and version for the value. It also provides many very useful commands, such as cas/cad, etc.
Stars: ✭ 99 (+175%)
Mutual labels:  module
automatic-vendor-federation
Utility to enable automatic vendor sharing within bundles using Module Federation
Stars: ✭ 69 (+91.67%)
Mutual labels:  module
puppetlabs-activemq
Puppet ActiveMQ Module
Stars: ✭ 25 (-30.56%)
Mutual labels:  module
SnipWire
Full Snipcart shopping cart integration for ProcessWire CMF
Stars: ✭ 16 (-55.56%)
Mutual labels:  module
ogma
A monorepo for the ogma logger and related packages
Stars: ✭ 201 (+458.33%)
Mutual labels:  module
Framer-Module-ShakeEvent
Shake event for your prototype.
Stars: ✭ 62 (+72.22%)
Mutual labels:  module
icingaweb2-module-businessprocess
Create top-level views of your applications in a graphical editor. Rules express dependencies between existing hosts and services and let you alert on application level. Business processes are displayed in a tree or list overview.
Stars: ✭ 106 (+194.44%)
Mutual labels:  module
puppetlabs-xinetd
Module for managing entries in xinetd
Stars: ✭ 13 (-63.89%)
Mutual labels:  module
ZfSnapGeoip
Maxmind Geoip module for Zend Framework 2
Stars: ✭ 15 (-58.33%)
Mutual labels:  module
ngx-localstorage
An Angular wrapper for localstorage/sessionstorage access.
Stars: ✭ 27 (-25%)
Mutual labels:  module
maze generator
A work-in-progress Javascript maze generator module, compatible with both Deno and Node. 🌽
Stars: ✭ 35 (-2.78%)
Mutual labels:  module
atomic-calendar-revive
An advanced calendar card for Home Assistant Lovelace.
Stars: ✭ 218 (+505.56%)
Mutual labels:  module
puppetlabs-docker
The Puppet Docker repository
Stars: ✭ 78 (+116.67%)
Mutual labels:  module
HttpsUtility
A basic HTTPS utility S# module.
Stars: ✭ 45 (+25%)
Mutual labels:  module

Diffusion Maps and Geometric Harmonics for Python

Overview

The diffusion-maps library for Python provides a fast and accurate implementation of diffusion maps[fn:1] and geometric harmonics[fn:2]. Its speed stems from the use of sparse linear algebra and (optionally) graphics processing units to accelerate computations. The included code routinely solves eigenvalue problems 3 x faster than SciPy using GPUs on matrices with over 200 million non-zero entries.

The package includes a command-line utility for the quick calculation of diffusion maps on data sets.

Some of the features of the diffusion-maps module include:

  • Fast evaluation of distance matrices using nearest neighbors.
  • Fast and accurate computation of eigenvalue/eigenvector pairs using sparse linear algebra.
  • Optional GPU-accelerated sparse linear algebra routines.
  • Optional interface to the ARPACK-NG library.
  • Simple and easily modifiable code.

[fn:1] Coifman, R. R., & Lafon, S. (2006). Diffusion maps. Applied and Computational Harmonic Analysis, 21(1), 5–30. http://doi.org/10.1016/j.acha.2006.04.006

[fn:2] Coifman, R. R., & Lafon, S. (2006). Geometric harmonics: A novel tool for multiscale out-of-sample extension of empirical functions. Applied and Computational Harmonic Analysis, 21(1), 31–52. http://doi.org/10.1016/j.acha.2005.07.005

./geometric-harmonics.png

Prerequisites

The library is implemented in Python 3.5+ and uses NumPy and SciPy. It is recommended to install PyCUDA to enable the GPU-accelerated eigenvalue solver.

The diffusion-maps command can display the resulting diffusion maps using Matplotlib if it is available.

Installation

Use python setup.py install to install on your system or python setup.py install --user for a user-specific installation.

Command-line utility

The diffusion-maps command reads data sets stored in NPY, CSV, or MATLAB’s MAT format. The simplest way to use it is to invoke it as follows:

diffusion-maps DATA-SET.NPY EPSILON-VALUE

There exist parameters to save and visualize different types of results, to specify how many eigenvalue/eigenvector pairs to compute, etc. See the help page displayed by:

diffusion-maps --help

Additional documentation

Sphinx-based API documentation is available in the doc/ folder. Run

make -C doc html

to build the documentation.

License

This code is released under the MIT license. See LICENSE for details.

Citation

If you use this code in publications, please cite it as:

Acknowledgments

The diffusion-maps library has originally been written by Juan M. Bello-Rivas.

Others have further contributed to diffusion-maps by reporting problems, suggesting various improvements, or submitting actual code. Here is a list of these people. Help me keep it complete and exempt of errors.

  • Felix Dietrich,
  • Mahdi Kooshkbaghi,
  • Daniel Lehmberg,
  • Philipp Schuegraf
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].