/NLSA

Kernel methods for statistical modeling of dynamical systems

Primary LanguageJupyter NotebookBSD 3-Clause "New" or "Revised" LicenseBSD-3-Clause

NLSA

This project provides a MATLAB implementation of nonlinear Laplacian spectral analysis (NLSA) and related kernel algorithms for feature extraction and prediction of observables of dynamical systems.

Usage

  1. Clone down the project repository:
git clone https://github.com/dg227/NLSA
  1. Launch MATLAB, cd into the project's directory, and add /nlsa to the MATLAB search path. This can be done by executing the MATLAB command:
addpath(genpath('nlsa'))

Examples

  • Rectification of variable-speed periodic oscillator using Koopman eigenfunctions:
/examples/circle/demoKoopman.m
  • Extraction of an approximately cyclical observable of the Lorenz 63 (L63) chaotic system using kernel integral operators with delays:
/examples/circle/demoNLSA.m
  • Kernel analog forecasting of the L63 state vector components:
/examples/l63/demoKAF.m

Implementation

NLSA implements a MATLAB class nlsaModel which encodes the attributes of the machine learning procedure to be carried out. This includes:

  • Specification of training and test data.
  • Delay-coordinate embedding.
  • Pairwise distance functions.
  • Density estimation for variable-bandwidth kernels.
  • Symmetric and non-symmetric Markov kernels.
  • Koopman operators.
  • Projection and reconstruction of target data.
  • Nystrom out-of-sample extension.

Each of the elements above are implemented as MATLAB classes. See /nlsa/classes for further information and basic documentation.

Results from each stage of the computation are written on disk in a directory tree with (near-) unique names based on the nlsaModel parameters.

Known issues

  • In Windows environments, errors can occur due to long file/directory names.

Acknowledgment

Research funded by the National Science Foundation (grants DMS-1521775, 1842538, DMS-1854383) and Office of Naval Research (grants N00014-14-1-0150, N00014-16-1-2649, N00014-19-1-2421).

NSF logoONR logo