├── .gitignore ├── LICENSE ├── README.md └── pic ├── dataset.png ├── overall.png ├── representation.png └── timesnet.png /.gitignore: -------------------------------------------------------------------------------- 1 | # Byte-compiled / optimized / DLL files 2 | __pycache__/ 3 | *.py[cod] 4 | *$py.class 5 | 6 | # C extensions 7 | *.so 8 | 9 | # Distribution / packaging 10 | .Python 11 | build/ 12 | develop-eggs/ 13 | dist/ 14 | downloads/ 15 | eggs/ 16 | .eggs/ 17 | lib/ 18 | lib64/ 19 | parts/ 20 | sdist/ 21 | var/ 22 | wheels/ 23 | pip-wheel-metadata/ 24 | share/python-wheels/ 25 | *.egg-info/ 26 | .installed.cfg 27 | *.egg 28 | MANIFEST 29 | 30 | # PyInstaller 31 | # Usually these files are written by a python script from a template 32 | # before PyInstaller builds the exe, so as to inject date/other infos into it. 33 | *.manifest 34 | *.spec 35 | 36 | # Installer logs 37 | pip-log.txt 38 | pip-delete-this-directory.txt 39 | 40 | # Unit test / coverage reports 41 | htmlcov/ 42 | .tox/ 43 | .nox/ 44 | .coverage 45 | .coverage.* 46 | .cache 47 | nosetests.xml 48 | coverage.xml 49 | *.cover 50 | *.py,cover 51 | .hypothesis/ 52 | .pytest_cache/ 53 | 54 | # Translations 55 | *.mo 56 | *.pot 57 | 58 | # Django stuff: 59 | *.log 60 | local_settings.py 61 | db.sqlite3 62 | db.sqlite3-journal 63 | 64 | # Flask stuff: 65 | instance/ 66 | .webassets-cache 67 | 68 | # Scrapy stuff: 69 | .scrapy 70 | 71 | # Sphinx documentation 72 | docs/_build/ 73 | 74 | # PyBuilder 75 | target/ 76 | 77 | # Jupyter Notebook 78 | .ipynb_checkpoints 79 | 80 | # IPython 81 | profile_default/ 82 | ipython_config.py 83 | 84 | # pyenv 85 | .python-version 86 | 87 | # pipenv 88 | # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. 89 | # However, in case of collaboration, if having platform-specific dependencies or dependencies 90 | # having no cross-platform support, pipenv may install dependencies that don't work, or not 91 | # install all needed dependencies. 92 | #Pipfile.lock 93 | 94 | # PEP 582; used by e.g. github.com/David-OConnor/pyflow 95 | __pypackages__/ 96 | 97 | # Celery stuff 98 | celerybeat-schedule 99 | celerybeat.pid 100 | 101 | # SageMath parsed files 102 | *.sage.py 103 | 104 | # Environments 105 | .env 106 | .venv 107 | env/ 108 | venv/ 109 | ENV/ 110 | env.bak/ 111 | venv.bak/ 112 | 113 | # Spyder project settings 114 | .spyderproject 115 | .spyproject 116 | 117 | # Rope project settings 118 | .ropeproject 119 | 120 | # mkdocs documentation 121 | /site 122 | 123 | # mypy 124 | .mypy_cache/ 125 | .dmypy.json 126 | dmypy.json 127 | 128 | # Pyre type checker 129 | .pyre/ 130 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2023 THUML @ Tsinghua University 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # **:triangular_flag_on_post: The complete code and scripts of TimesNet have been included in [[Time-Series-Library]](https://github.com/thuml/Time-Series-Library).** 2 | 3 | # **:triangular_flag_on_post: The complete code and scripts of TimesNet have been included in [[Time-Series-Library]](https://github.com/thuml/Time-Series-Library).** 4 | 5 | # **:triangular_flag_on_post: The complete code and scripts of TimesNet have been included in [[Time-Series-Library]](https://github.com/thuml/Time-Series-Library).** 6 | 7 | TimesNet: Temporal 2D-Variation Modeling for General Time Series Analysis [[ICLR 2023]](https://openreview.net/pdf?id=ju_Uqw384Oq) 8 | 9 |

10 | 11 |

12 | 13 | In this paper, we present TimesNet as a powerful foundation model for general time series analysis, which can 14 | 15 | - 🏆 Achieve the consistent state-of-the-art in five main-stream tasks: **Long- and Short-term Forecasting, Imputation, Anomaly Detection and Classification**. 16 | - 🌟 Directly take advantage of booming vision backbones by transforming the 1D time series into 2D space. 17 | 18 | ## Temporal 1D-Variation vs. 2D-Variation 19 | 20 | Temporal variation modeling is the common key problem of extensive analysis tasks. Previous methods attempt to accomplish this directly from the 1D time series, which is extremely challenging due to the intricate temporal patterns. Based on the observation of multi-periodicity in time series, we present the TimesNet to **transform the origianl 1D-timeseries into 2D Space**, which can unfiy the intraperiod- and interperiod-variations. 21 | 22 |

23 | 24 |

25 | 26 | ## General Representation Learning Capacity 27 | 28 | To demonstrate the model capacity in representation learning, we calculate the [CKA similarity](https://github.com/jayroxis/CKA-similarity) between representations from the bottom and top layer of each model. A smaller CKA similarity means that the representations of bottom and top layer are more distinct, indicating the hierarchical representations. From this representation analysis, We find that: 29 | 30 | - **Forecasting and anomaly detection tasks require the low-level representations.** 31 | - **Imputation and classification tasks expect the hierarchical representations.** 32 | 33 | Benefiting from 2D kernel design, **TimesNet (marked by red stars) can learn appropriate representations for different tasks**, demonstrating its task generality as a foundation model. 34 | 35 |

36 | 37 |

38 | 39 | ## Leaderboard for Time Series Analysis 40 | 41 | In this paper, we also provide a comprehensive benchmark to evaluate different backbones. **More than 15 advanced baselines are compared.** Till February 2023, the top three models for five different tasks are: 42 | 43 | | Model
Ranking | Long-term
Forecasting | Short-term
Forecasting | Imputation | Classification | Anomaly
Detection | 44 | | ---------------- | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | ------------------------------------------------------------ | -------------------------------------------------- | 45 | | 🥇 1st | [TimesNet](https://arxiv.org/abs/2210.02186) | [TimesNet](https://arxiv.org/abs/2210.02186) | [TimesNet](https://arxiv.org/abs/2210.02186) | [TimesNet](https://arxiv.org/abs/2210.02186) | [TimesNet](https://arxiv.org/abs/2210.02186) | 46 | | 🥈 2nd | [DLinear](https://github.com/cure-lab/LTSF-Linear) | [Non-stationary
Transformer](https://github.com/thuml/Nonstationary_Transformers) | [Non-stationary
Transformer](https://github.com/thuml/Nonstationary_Transformers) | [Non-stationary
Transformer](https://github.com/thuml/Nonstationary_Transformers) | [FEDformer](https://github.com/MAZiqing/FEDformer) | 47 | | 🥉 3rd | [Non-stationary
Transformer](https://github.com/thuml/Nonstationary_Transformers) | [FEDformer](https://github.com/MAZiqing/FEDformer) | [Autoformer](https://github.com/thuml/Autoformer) | [Informer](https://github.com/zhouhaoyi/Informer2020) | [Autoformer](https://github.com/thuml/Autoformer) | 48 | 49 | See our [paper](https://openreview.net/pdf?id=ju_Uqw384Oq) for the comprehensive benchmark. 50 | 51 | ## Citation 52 | 53 | If you find this repo useful, please cite our paper. 54 | 55 | ``` 56 | @inproceedings{wu2023timesnet, 57 | title={TimesNet: Temporal 2D-Variation Modeling for General Time Series Analysis}, 58 | author={Haixu Wu and Tengge Hu and Yong Liu and Hang Zhou and Jianmin Wang and Mingsheng Long}, 59 | booktitle={International Conference on Learning Representations}, 60 | year={2023}, 61 | } 62 | ``` 63 | 64 | ## Contact 65 | If you have any questions, please contact wuhx23@mails.tsinghua.edu.cn. 66 | 67 | ## Acknowledgement 68 | 69 | We appreciate the following github repos for their valuable codebase: 70 | 71 | - Forecasting: https://github.com/thuml/Autoformer 72 | 73 | - Anomaly Detection: https://github.com/thuml/Anomaly-Transformer 74 | 75 | - Classification: https://github.com/thuml/Flowformer 76 | -------------------------------------------------------------------------------- /pic/dataset.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thuml/TimesNet/2b39e14cd16448e0ed94e4df81c4f5dc86f658d9/pic/dataset.png -------------------------------------------------------------------------------- /pic/overall.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thuml/TimesNet/2b39e14cd16448e0ed94e4df81c4f5dc86f658d9/pic/overall.png -------------------------------------------------------------------------------- /pic/representation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thuml/TimesNet/2b39e14cd16448e0ed94e4df81c4f5dc86f658d9/pic/representation.png -------------------------------------------------------------------------------- /pic/timesnet.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/thuml/TimesNet/2b39e14cd16448e0ed94e4df81c4f5dc86f658d9/pic/timesnet.png --------------------------------------------------------------------------------