Show HN: Efficient Modeling of Nonlinear Dynamics in Nonstationary Data Streams

C-Naoki1 pts0 comments

GitHub - C-Naoki/AdaKoop: [KDD2026] AdaKoop: Efficient Modeling of Nonlinear Dynamics from Nonstationary Data Streams with Koopman Operator Regression (to appear). · GitHub

/" data-turbo-transient="true" />

Skip to content

Search or jump to...

Search code, repositories, users, issues, pull requests...

-->

Search

Clear

Search syntax tips

Provide feedback

--><br>We read every piece of feedback, and take your input very seriously.

Include my email address so I can be contacted

Cancel

Submit feedback

Saved searches

Use saved searches to filter your results more quickly

-->

Name

Query

To see all available qualifiers, see our documentation.

Cancel

Create saved search

Sign in

/;ref_cta:Sign up;ref_loc:header logged out"}"<br>Sign up

Appearance settings

Resetting focus

You signed in with another tab or window. Reload to refresh your session.<br>You signed out in another tab or window. Reload to refresh your session.<br>You switched accounts on another tab or window. Reload to refresh your session.

Dismiss alert

{{ message }}

C-Naoki

AdaKoop

Public

Notifications<br>You must be signed in to change notification settings

Fork

Star

main

BranchesTags

Go to file

CodeOpen more actions menu

Folders and files<br>NameNameLast commit message<br>Last commit date<br>Latest commit

History<br>8 Commits<br>8 Commits

bin

bin

data/dysts

data/dysts

docs

docs

src

src

.gitignore

.gitignore

.python-version

.python-version

Makefile

Makefile

README.md

README.md

pyproject.toml

pyproject.toml

requirements.txt

requirements.txt

uv.lock

uv.lock

View all files

Repository files navigation

AdaKoop: Efficient Modeling of Nonlinear Dynamics from Nonstationary Data Streams with Koopman Operator Regression

This repository contains the implementation of the KDD 2026 paper, "AdaKoop: Efficient Modeling of Nonlinear Dynamics from Nonstationary Data Streams with Koopman Operator Regression," by Naoki Chihara, Ren Fujiwara, Yasuko Matsubara, Yasushi Sakurai.

Figure 1. Overview of AdaKoop.

Usage

Clone this repository.

git clone https://github.com/C-Naoki/AdaKoop.git

Construct a virtual environment and install the required packages.

make install

Note that it requires to pyenv and uv.

If you prefer not to use them, you can also use requirements.txt created based on pyproject.toml.

Specifically, the above command performs the following steps:

if necessary, install Python 3.12.11 using pyenv, and then switch to this version.

create a virtual environment based on Python 3.12.11

install packages in pyproject.toml.

attach the path file (i.e., *.pth) in the site-packages/ for extending module search path.

Please check the Makefile for more details.

Prepare the datasets.

make prepare

This command generates the datasets and saves them in the data/dysts/ directory.

Run quick demos of AdaKoop

bash bin/demo.sh

If you want the command to continue running after logging out, you prepare nohup/ directory and use -n option as shown below (using nohup).

bash bin/demo.sh -n

The execution log is saved in nohup/ directory.

Minimal Example

import numpy as np

from src.models.adakoop import AdaKoop

# Build the model and set parameters.<br>model = AdaKoop(verbose=False)<br>model.init_params(d=d, lcurr=lcurr)

# Initialization.<br># - X_train, X_test : np.ndarray, shape (n, d)<br># - X_test is time series immediately after X_train.<br>model.initialize(X_train)<br>model.set_initial_model(X_train[-lcurr:])

# Online forecasting.<br>pred = np.full_like(X_test, np.nan)<br>for tc in range(len(X_test) - lstep):<br>x_new = X_test[tc]<br>model.model_selection(x_new)<br>model.update(x_new)<br>forecast, _, _ = model.forecast(lstep=lstep)<br>pred[tc + lstep] = forecast[-1]

Parameters

The main parameters of AdaKoop are summarized in the table below.

Argument<br>Default<br>Description

lcurr<br>Required<br>Current window length.

lstep<br>Required<br>Forecasting horizon.

nu<br>1e-3<br>Threshold for basis orthogonalization.

gamma<br>3e-3<br>Online forgetting factor.

kernel_type<br>rbf<br>Kernel used for window comparison and dictionary features.

lambda_A<br>1e-6<br>Ridge regularization strength for the transition matrix A.

em_iters<br>Maximum number of EM refinement iterations.

em_tol<br>1e-6<br>Convergence tolerance for EM refinement.

m_max<br>100<br>Maximum dictionary size.

chi2_p<br>0.99<br>Chi-square quantile used to compute the innovation-distance threshold.

Datasets

We used the dysts benchmark datasets for evaluating of our proposed method. This benchmark offers various types of chaotic dynamical systems spanning diverse fields, including astrophysics, climatology, and biochemistry.

Citation

If you use this code for your research, please consider citing our paper.

About

[KDD2026] AdaKoop: Efficient Modeling of Nonlinear Dynamics from Nonstationary Data Streams with Koopman Operator Regression (to appear).

Resources

Readme

Uh oh!

There was an error while loading. Please reload this page.

Activity

Stars

stars

Watchers

watching

Forks

forks

Report repository

Releases

No releases published

Packages

Uh...

adakoop data model search efficient modeling

Related Articles