This is the official codebase for the paper: Koopa: Learning Non-stationary Time Series Dynamics with Koopman Predictors, NeurIPS 2023. [Slides], [Poster].
: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].
Koopa is a lightweight, MLP-based, and theory-inspired model for efficient time series forecasting.
There are already several discussions about our paper, we appreciate a lot for their valuable comments and efforts: [Official], [Openreview], [Zhihu].
pip install -r requirements.txt
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: