Home

Awesome

Koopa

This is the official codebase for the paper: Koopa: Learning Non-stationary Time Series Dynamics with Koopman Predictors, NeurIPS 2023. [Slides], [Poster].

Updates

:triangular_flag_on_post: News (2024.2) Introduction of our work in Chinese is available: [Official], [Zhihu].

:triangular_flag_on_post: News (2023.10) Koopa has been included in [Time-Series-Library].

Introduction

Koopa is a lightweight, MLP-based, and theory-inspired model for efficient time series forecasting.

<p align="center"> <img src="./figures/efficiency.png" height = "240" alt="" align=center /> </p> <p align="center"> <img src="./figures/motivation.png" height = "180" alt="" align=center /> </p> <p align="center"> <img src="./figures/architecture.png" height = "360" alt="" align=center /> </p>

Discussions

There are already several discussions about our paper, we appreciate a lot for their valuable comments and efforts: [Official], [Openreview], [Zhihu].

Preparation

  1. Install Pytorch (>=1.12.0) and other necessary dependencies.
pip install -r requirements.txt
  1. All the six benchmark datasets can be obtained from Google Drive or Tsinghua Cloud.

Training scripts

We provide the Koopa experiment scripts and hyperparameters of all benchmark datasets under the folder ./scripts.

bash ./scripts/ECL_script/Koopa.sh
bash ./scripts/Traffic_script/Koopa.sh
bash ./scripts/Weather_script/Koopa.sh
bash ./scripts/ILI_script/Koopa.sh
bash ./scripts/Exchange_script/Koopa.sh
bash ./scripts/ETT_script/Koopa.sh

Applicable for Rolling Forecast

<p align="center"> <img src="./figures/algorithm.png" height = "480" alt="" align=center /> </p>

Citation

If you find this repo useful, please cite our paper.

@article{liu2023koopa,
  title={Koopa: Learning Non-stationary Time Series Dynamics with Koopman Predictors},
  author={Liu, Yong and Li, Chenyu and Wang, Jianmin and Long, Mingsheng},
  journal={arXiv preprint arXiv:2305.18803},
  year={2023}
}

Contact

If you have any questions or want to use the code, please contact: