This is the official codebase for the paper: Koopa: Learning Non-stationary Time Series Dynamics with Koopman Predictors, NeurIPS 2023. [Slides], [Poster].
🚩 News (2024.2) Introduction of our work in Chinese is available: [Official], [Zhihu].
🚩 News (2023.10) Koopa has been included in [Time-Series-Library].
Koopa is a lightweight, MLP-based, and theory-inspired model for efficient time series forecasting.
- Compared with the advanced but painstakingly trained deep forecasters, Koopa achieves state-of-the-art performance while saving 77.3% training time and 76.0% memory footprint.
- Focus on portraying ubiquitous non-stationary time series, Koopa shows enhanced model capacity empowered by the modern Koopman theory that naturally addresses the nonlinear evolution of real-world time series.
- Koopa differs from the canonical Koopman Autoencoder without the reconstruction loss function to achieve end-to-end predictive training.
There are already several discussions about our paper, we appreciate a lot for their valuable comments and efforts: [Official], [Openreview], [Zhihu].
- Install Pytorch (>=1.12.0) and other necessary dependencies.
pip install -r requirements.txt
- All the six benchmark datasets can be obtained from Google Drive or Tsinghua Cloud.
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
-
By adapting the operator on the incoming time series during rolling forecast, the proposed model can achieve more accurate performance via adapting to continuous distribution shift.
-
The naïve implementation of operator adaptation is based on the DMD algorithm. We propose an iterative algorithm with reduced complexity. The details can be found in the Appendix of our paper.
-
We also provide a tutorial notebook for a better understanding of this scenario. See
operator_adaptation.ipynb
for the details.
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}
}
If you have any questions or want to use the code, please contact: