Learning Interaction Kernels in Particle Systems
Code implementing the algorithms used in the papers on estimating interaction kernels in particle- and agent-based systems is available here (maintained by M. Zhong).
Geometric Multi-Resolution Analysis (GMRA)
Geometric Multi-Resolution Analysis (GMRA) Code
See the paper Geometric Multi-Resolution Analysis, W.K. Allard, G. Chen and M Maggioni. Preprint here, as well as the related “compressive sampling” for GMRA paper Approximation of Points on Low-Dimensional Manifolds Via Random Linear Projections, M. Iwen, M. Maggioni.
Matlab code for GMRA and Geometric Wavelet Analysis and Transforms.
Last version of the code: Geometric Multi-Resolution Analysis [Updated on 2/24/17].
Unzip in a directory, preserving the subdirectory structure. Open Matlab, go in the installation directory and run Startup_GMRA. This will add the required paths to Matlab.
RunExamples contains examples for running the GMRA code.
Important note: The code includes the Diffusion Geometry package on which it depends. If you have Diffusion Geometry already installed, please delete the Diffusion Geometry subdirectory that gets installed with this packa.ge The code depends on Data Sets (for running certain examples). The code requires SuiteSparse and METIS to be installed; it comes with precompiled versions for OS X and Linux 64bit, in which case the installation of these packages is not required.
Diffusion Geometry Code
See the paper Geometric diffusions as a tool for harmonic analysis and structure definition of data. part i: Diffusion maps
, RR Coifman, S Lafon, A Lee, M Maggioni, B Nadler, FJ Warner, and SW Zucker. Proc. of Nat. Acad. Sci., 102:7426–7431, May 2005.
Matlab code for Diffusion Geometry.
Latest version of the code: Diffusion geometry
[Updated on 7/22/17]. This version now includes covertree for fast nearest neighbor searches. It may not (yet) be compatible with all Linux versions.
Previous version of the code: Diffusion geometry
[Updated on 11/12/14].
Unzip in a directory, preserving the subdirectory structure. Open Matlab, go in the installation directory and run Startup_DiffusionGeometry.
RunExamples contains examples for running the GraphDiffusion code, for constructing nearest neighbor graphs and computing eigenvectors of the Laplacian on such graphs.
The main script for constructing graphs and computing Laplacians and their eigenfunctions is called GraphDiffusion
. Type help GraphDiffusion
at the Matlab prompt to see the options, and run the example there (diffusion on a circle) to test installation.
Important note regarding examples and data sets:
Some of the examples rely on data sets, publicly available on the web, in the appropriate format: you may find them, and their source, below.
Important note regarding nearest neighbor:
The package supports either the nn_search
functions of the TSToolbox
and the ANNsearch
functions of the Approximate Nearest Neighbor Searching Library
by D. Mount and S. Arya.
MEX files for some platforms are already included in the Diffusion Geometry package, in the ‘NearestNeighbors’ directory. If MEX files for your machine are not included, you should compile those files and make those available to Matlab by modifying its search paths as needed.
Please let me know if you encounter problems with the installation, or report successes under different systems. Thanks.
Diffusion Wavelets Code
See the paper Diffusion wavelets, RR Coifman and M Maggioni. Appl. Comp. Harm. Anal., 21(1):53–94, July 2006.
Matlab code for Diffusion Wavelets. A new, much faster version is in the works.
This was originally a joint effort with James C. Bremer Jr. and Arthur D. Szlam.
Last version of the code: Diffusion wavelets [Updated on 7/13/11].
Unzip in a directory, preserving the subdirectory structure. Open Matlab, go in the installation directory and run Startup_DiffusionWavelets.
RunExamples contains examples for running the DWPTree code that constructs diffusion wavelet trees on graphs.
Important note regarding examples and data sets:
The code, especially the examples, rely on the Diffusion Geometry package above and on the data sets below. All notes/comments that apply to the Diffusion Geometry package apply here as well.
Multiscale SVD Code
See the paper Multiscale Geometric Methods for Data Sets I: Multiscale SVD, Noise and Curvature, A. V. Little, M. Maggioni, L. Rosasco. This paper summarizes the work in A.V. Little’s thesis (May 2011) on multi scale singular values for noisy point clouds. This extends the analysis of the constructions and results in our previous work Multiscale Estimation of Intrinsic Dimensionality of Data Sets (A.V. Little and Y.-M. Jung and M. Maggioni, Proc. AAAI, 2009) and Estimation of intrinsic dimensionality of samples from noisy low-dimensional manifolds in high dimensions with multiscale SVD (A.V. Little and J. Lee and Y.-M. Jung and M. Maggioni, Proc. SSP, 2009}.
Latest version of the code: Multiscale SVD Code [Updated on 11/29/12].
Unzip in a directory, preserving the subdirectory structure. Open Matlab, go in the installation directory and run Startup_MSVD.
RunExamples contains examples for running the MSVD code, including several examples in the paper.
Important note: The code requires the DiffusionGeometry package to be properly installed, as well as the Data Sets (for running certain examples).
This is the code
for the algorithms introduced in the paper Unsupervised Clustering and Active Learning of Hyperspectral Images with Nonlinear Diffusion
with J.M. Murphy
, and to reproduce the results therein (these require the data sets made available on this page
, maintained by J.M.Murphy)
Multiscale Analysis of Plane Arrangements
Compressed Sensing Inversion for GMRA
Compressed Sensing Inversion for GMRA Code
See the paper Approximation of points on low-dimensional manifolds via random linear projections, M. A. Iwen and M Maggioni. Preprint here.
Matlab code for Compressive Sensing inversion for GMRA.
Last version of the code: Compressive Sensing Inversion for GMRA [Updated on 6/19/13].
Note: The code requires the Diffusion toolbox and all the packages required for that (in particular, Diffusion Geometry; see the GMRA code section), and the SpaRSA toolbox for the performance comparisons
Simple Demos for Spectral Graph Theory
This code allows to take a black and white picture with points, and constructing an associated proximity graph, and then computing and displaying eigenvalues/eigenfunctions of the Laplacian on such graph. You need to first download and install the general code for Diffusion Geometry above and then download and install this code for running the demo I ran in class, with some images already prepared.
The script for the demo is called GraphEigenFcnsEx_01.m, and it is fairly extensively commented. I will be happy to add your own examples here!