tabpfn-time-series 0.1.2__tar.gz → 1.0.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. tabpfn_time_series-1.0.0/.github/workflows/pull_request.yml +59 -0
  2. tabpfn_time_series-1.0.0/.gitignore +6 -0
  3. {tabpfn_time_series-0.1.2 → tabpfn_time_series-1.0.0}/PKG-INFO +30 -14
  4. tabpfn_time_series-1.0.0/README.md +46 -0
  5. {tabpfn_time_series-0.1.2 → tabpfn_time_series-1.0.0}/demo.ipynb +159 -175
  6. {tabpfn_time_series-0.1.2 → tabpfn_time_series-1.0.0}/pyproject.toml +4 -4
  7. {tabpfn_time_series-0.1.2 → tabpfn_time_series-1.0.0}/requirements-dev.txt +2 -0
  8. tabpfn_time_series-1.0.0/requirements.txt +11 -0
  9. {tabpfn_time_series-0.1.2 → tabpfn_time_series-1.0.0}/tabpfn_time_series/__init__.py +3 -2
  10. tabpfn_time_series-1.0.0/tabpfn_time_series/features/__init__.py +17 -0
  11. tabpfn_time_series-1.0.0/tabpfn_time_series/features/auto_features.py +307 -0
  12. tabpfn_time_series-1.0.0/tabpfn_time_series/features/basic_features.py +88 -0
  13. tabpfn_time_series-1.0.0/tabpfn_time_series/features/feature_generator_base.py +21 -0
  14. tabpfn_time_series-1.0.0/tabpfn_time_series/features/feature_transformer.py +53 -0
  15. {tabpfn_time_series-0.1.2 → tabpfn_time_series-1.0.0}/tabpfn_time_series/predictor.py +5 -7
  16. {tabpfn_time_series-0.1.2 → tabpfn_time_series-1.0.0}/tabpfn_time_series/tabpfn_worker.py +119 -17
  17. tabpfn_time_series-1.0.0/tests/test_predictor.py +123 -0
  18. tabpfn_time_series-0.1.2/.cache/huggingface/.gitignore +0 -1
  19. tabpfn_time_series-0.1.2/.cache/huggingface/download/config.json.lock +0 -0
  20. tabpfn_time_series-0.1.2/.cache/huggingface/download/config.json.metadata +0 -3
  21. tabpfn_time_series-0.1.2/.cache/huggingface/download/tabpfn-v2-regressor-2noar4o2.ckpt.lock +0 -0
  22. tabpfn_time_series-0.1.2/.cache/huggingface/download/tabpfn-v2-regressor-2noar4o2.ckpt.metadata +0 -3
  23. tabpfn_time_series-0.1.2/.gitignore +0 -2
  24. tabpfn_time_series-0.1.2/README.md +0 -35
  25. tabpfn_time_series-0.1.2/playground.ipynb +0 -759
  26. tabpfn_time_series-0.1.2/requirements.txt +0 -6
  27. tabpfn_time_series-0.1.2/tabpfn-v2-regressor-2noar4o2.ckpt +0 -0
  28. tabpfn_time_series-0.1.2/tabpfn_time_series/feature.py +0 -78
  29. {tabpfn_time_series-0.1.2 → tabpfn_time_series-1.0.0}/.pre-commit-config.yaml +0 -0
  30. {tabpfn_time_series-0.1.2 → tabpfn_time_series-1.0.0}/LICENSE.txt +0 -0
  31. {tabpfn_time_series-0.1.2 → tabpfn_time_series-1.0.0}/ruff.toml +0 -0
  32. {tabpfn_time_series-0.1.2 → tabpfn_time_series-1.0.0}/tabpfn_time_series/data_preparation.py +0 -0
  33. {tabpfn_time_series-0.1.2 → tabpfn_time_series-1.0.0}/tabpfn_time_series/defaults.py +0 -0
  34. {tabpfn_time_series-0.1.2 → tabpfn_time_series-1.0.0}/tabpfn_time_series/plot.py +0 -0
@@ -0,0 +1,59 @@
1
+ name: In pull request
2
+ on:
3
+ pull_request:
4
+ branches:
5
+ - main
6
+ - dev
7
+
8
+ jobs:
9
+ check_python_linting:
10
+ name: Ruff Linting & Formatting
11
+ runs-on: ubuntu-latest
12
+ steps:
13
+ - uses: actions/checkout@v4
14
+ - uses: chartboost/ruff-action@v1
15
+ with:
16
+ src: "./"
17
+ version: 0.3.3
18
+ - uses: chartboost/ruff-action@v1
19
+ with:
20
+ src: "./"
21
+ version: 0.3.3
22
+ args: 'format --check'
23
+
24
+ test_compatibility:
25
+ name: Test Package Compatibility
26
+ strategy:
27
+ fail-fast: false
28
+ matrix:
29
+ os: [ubuntu-latest, macos-latest, windows-latest]
30
+ python-version: ["3.10", "3.11", "3.12"]
31
+ runs-on: ${{ matrix.os }}
32
+ steps:
33
+ - uses: actions/checkout@v4
34
+
35
+ - name: Set up Python ${{ matrix.python-version }}
36
+ uses: actions/setup-python@v5
37
+ with:
38
+ python-version: ${{ matrix.python-version }}
39
+ cache: 'pip'
40
+
41
+ - name: Cache dependencies
42
+ uses: actions/cache@v3
43
+ with:
44
+ path: ~/.cache/pip
45
+ key: ${{ runner.os }}-pip-${{ matrix.python-version }}-${{ hashFiles('requirements.txt') }}
46
+ restore-keys: |
47
+ ${{ runner.os }}-pip-${{ matrix.python-version }}-
48
+ ${{ runner.os }}-pip-
49
+
50
+ - name: Install dependencies
51
+ run: |
52
+ python -m pip install --upgrade pip
53
+ pip install -r requirements.txt
54
+
55
+ - name: Run Tests
56
+ env:
57
+ TABPFN_CLIENT_API_KEY: ${{ secrets.TABPFN_CLIENT_API_KEY }}
58
+ run: |
59
+ python -m unittest discover -s tests -t tests
@@ -0,0 +1,6 @@
1
+ *.pyc
2
+ *.DS_Store
3
+ gift_eval/data
4
+ gift_eval/results
5
+ wandb
6
+ results
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tabpfn_time_series
3
- Version: 0.1.2
4
- Summary: Zero-shot time series forecasting with TabPFN
3
+ Version: 1.0.0
4
+ Summary: Zero-shot time series forecasting with TabPFNv2
5
5
  Project-URL: Homepage, https://github.com/liam-sbhoo/tabpfn-time-series
6
6
  Project-URL: Bug Tracker, https://github.com/liam-sbhoo/tabpfn-time-series/issues
7
7
  Author-email: Liam Shi Bin Hoo <hoos@tf.uni-freiburg.de>
@@ -10,28 +10,43 @@ Classifier: License :: OSI Approved :: Apache Software License
10
10
  Classifier: Operating System :: OS Independent
11
11
  Classifier: Programming Language :: Python :: 3
12
12
  Requires-Python: >=3.10
13
- Requires-Dist: autogluon-timeseries==1.2
14
- Requires-Dist: gluonts==0.16.0
15
- Requires-Dist: pandas
16
- Requires-Dist: tabpfn-client==0.1.1
17
- Requires-Dist: tabpfn==2.0.0
13
+ Requires-Dist: autogluon-timeseries>=1.2
14
+ Requires-Dist: datasets>=3.3.2
15
+ Requires-Dist: gluonts>=0.16.0
16
+ Requires-Dist: pandas<2.2.0,>=2.1.2
17
+ Requires-Dist: python-dotenv>=1.1.0
18
+ Requires-Dist: pyyaml>=6.0.1
19
+ Requires-Dist: tabpfn-client>=0.1.7
20
+ Requires-Dist: tabpfn>=2.0.9
18
21
  Requires-Dist: tqdm
19
22
  Provides-Extra: dev
20
23
  Requires-Dist: build; extra == 'dev'
21
24
  Requires-Dist: jupyter; extra == 'dev'
22
25
  Requires-Dist: pre-commit; extra == 'dev'
23
26
  Requires-Dist: ruff; extra == 'dev'
27
+ Requires-Dist: submitit>=1.5.2; extra == 'dev'
24
28
  Requires-Dist: twine; extra == 'dev'
29
+ Requires-Dist: wandb>=0.19.8; extra == 'dev'
25
30
  Description-Content-Type: text/markdown
26
31
 
27
- # Time Series Forecasting with TabPFN
32
+ # TabPFN-TS
28
33
 
34
+ > Zero-Shot Time Series Forecasting with TabPFNv2
35
+
36
+ [![PyPI version](https://badge.fury.io/py/tabpfn-time-series.svg)](https://badge.fury.io/py/tabpfn-time-series)
29
37
  [![colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/liam-sbhoo/tabpfn-time-series/blob/main/demo.ipynb)
30
38
  [![Discord](https://img.shields.io/discord/1285598202732482621?color=7289da&label=Discord&logo=discord&logoColor=ffffff)](https://discord.com/channels/1285598202732482621/)
31
- [![arXiv](https://img.shields.io/badge/arXiv-2501.02945-<COLOR>.svg)](https://arxiv.org/abs/2501.02945)
39
+ [![arXiv](https://img.shields.io/badge/arXiv-2501.02945-<COLOR>.svg)](https://arxiv.org/abs/2501.02945v3)
40
+
41
+ ## 📌 News
42
+ - **27-05-2025**: 📝 New **[paper](https://arxiv.org/abs/2501.02945v3)** version and **v1.0.0** release! Strong [GIFT-EVAL](https://huggingface.co/spaces/Salesforce/GIFT-Eval) results, new AutoSeasonalFeatures, improved CalendarFeatures.
43
+ - **27-01-2025**: 🚀 Ranked _**1st**_ on [GIFT-EVAL](https://huggingface.co/spaces/Salesforce/GIFT-Eval) benchmark<sup>[1]</sup>!
44
+ - **10-10-2024**: 🚀 TabPFN-TS [paper](https://arxiv.org/abs/2501.02945v2) accepted to NeurIPS 2024 [TRL](https://table-representation-learning.github.io/NeurIPS2024/) and [TSALM](https://neurips-time-series-workshop.github.io/) workshops!
32
45
 
46
+ _[1] Last checked on: 10/03/2025_
33
47
 
34
- We demonstrate that the tabular foundation model **[TabPFN](https://github.com/PriorLabs/TabPFN)**, when paired with minimal featurization, can perform zero-shot time series forecasting. Its performance on point forecasting matches or even slightly outperforms state-of-the-art methods.
48
+ ## Introduction
49
+ We demonstrate that the tabular foundation model **[TabPFNv2](https://github.com/PriorLabs/TabPFN)**, combined with lightweight feature engineering, enables zero-shot time series forecasting for both point and probabilistic tasks. On the **[GIFT-EVAL](https://huggingface.co/spaces/Salesforce/GIFT-Eval)** benchmark, our method achieves performance on par with top-tier models across both evaluation metrics.
35
50
 
36
51
  ## 📖 How does it work?
37
52
 
@@ -41,18 +56,19 @@ Our work proposes to frame **univariate time series forecasting** as a **tabular
41
56
 
42
57
  Concretely, we:
43
58
  1. Transform a time series into a table
44
- 2. Extract features from timestamp and add them to the table
45
- 3. Perform regression on the table using TabPFN
59
+ 2. Extract features and add them to the table
60
+ 3. Perform regression on the table using TabPFNv2
46
61
  4. Use regression results as time series forecasting outputs
47
62
 
48
- For more details, please refer to our [paper](https://arxiv.org/abs/2501.02945) and our [poster](docs/tabpfn-ts-neurips-poster.pdf) (presented at NeurIPS 2024 TRL and TSALM workshops).
63
+ For more details, please refer to our [paper](https://arxiv.org/abs/2501.02945v3).
64
+ <!-- and our [poster](docs/tabpfn-ts-neurips-poster.pdf) (presented at NeurIPS 2024 TRL and TSALM workshops). -->
49
65
 
50
66
  ## 👉 **Why gives us a try?**
51
67
  - **Zero-shot forecasting**: this method is extremely fast and requires no training, making it highly accessible for experimenting with your own problems.
52
68
  - **Point and probabilistic forecasting**: it provides accurate point forecasts as well as probabilistic forecasts.
53
69
  - **Support for exogenous variables**: if you have exogenous variables, this method can seemlessly incorporate them into the forecasting model.
54
70
 
55
- On top of that, thanks to **[tabpfn-client](https://github.com/automl/tabpfn-client)** from **[Prior Labs](https://priorlabs.ai)**, you won’t even need your own GPU to run fast inference with TabPFN. 😉 We have included `tabpfn-client` as the default engine in our implementation.
71
+ On top of that, thanks to **[tabpfn-client](https://github.com/automl/tabpfn-client)** from **[Prior Labs](https://priorlabs.ai)**, you won’t even need your own GPU to run fast inference with TabPFNv2. 😉 We have included `tabpfn-client` as the default engine in our implementation.
56
72
 
57
73
  ## How to use it?
58
74
 
@@ -0,0 +1,46 @@
1
+ # TabPFN-TS
2
+
3
+ > Zero-Shot Time Series Forecasting with TabPFNv2
4
+
5
+ [![PyPI version](https://badge.fury.io/py/tabpfn-time-series.svg)](https://badge.fury.io/py/tabpfn-time-series)
6
+ [![colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/liam-sbhoo/tabpfn-time-series/blob/main/demo.ipynb)
7
+ [![Discord](https://img.shields.io/discord/1285598202732482621?color=7289da&label=Discord&logo=discord&logoColor=ffffff)](https://discord.com/channels/1285598202732482621/)
8
+ [![arXiv](https://img.shields.io/badge/arXiv-2501.02945-<COLOR>.svg)](https://arxiv.org/abs/2501.02945v3)
9
+
10
+ ## 📌 News
11
+ - **27-05-2025**: 📝 New **[paper](https://arxiv.org/abs/2501.02945v3)** version and **v1.0.0** release! Strong [GIFT-EVAL](https://huggingface.co/spaces/Salesforce/GIFT-Eval) results, new AutoSeasonalFeatures, improved CalendarFeatures.
12
+ - **27-01-2025**: 🚀 Ranked _**1st**_ on [GIFT-EVAL](https://huggingface.co/spaces/Salesforce/GIFT-Eval) benchmark<sup>[1]</sup>!
13
+ - **10-10-2024**: 🚀 TabPFN-TS [paper](https://arxiv.org/abs/2501.02945v2) accepted to NeurIPS 2024 [TRL](https://table-representation-learning.github.io/NeurIPS2024/) and [TSALM](https://neurips-time-series-workshop.github.io/) workshops!
14
+
15
+ _[1] Last checked on: 10/03/2025_
16
+
17
+ ## ✨ Introduction
18
+ We demonstrate that the tabular foundation model **[TabPFNv2](https://github.com/PriorLabs/TabPFN)**, combined with lightweight feature engineering, enables zero-shot time series forecasting for both point and probabilistic tasks. On the **[GIFT-EVAL](https://huggingface.co/spaces/Salesforce/GIFT-Eval)** benchmark, our method achieves performance on par with top-tier models across both evaluation metrics.
19
+
20
+ ## 📖 How does it work?
21
+
22
+ Our work proposes to frame **univariate time series forecasting** as a **tabular regression problem**.
23
+
24
+ ![How it works](docs/tabpfn-ts-method-overview.png)
25
+
26
+ Concretely, we:
27
+ 1. Transform a time series into a table
28
+ 2. Extract features and add them to the table
29
+ 3. Perform regression on the table using TabPFNv2
30
+ 4. Use regression results as time series forecasting outputs
31
+
32
+ For more details, please refer to our [paper](https://arxiv.org/abs/2501.02945v3).
33
+ <!-- and our [poster](docs/tabpfn-ts-neurips-poster.pdf) (presented at NeurIPS 2024 TRL and TSALM workshops). -->
34
+
35
+ ## 👉 **Why gives us a try?**
36
+ - **Zero-shot forecasting**: this method is extremely fast and requires no training, making it highly accessible for experimenting with your own problems.
37
+ - **Point and probabilistic forecasting**: it provides accurate point forecasts as well as probabilistic forecasts.
38
+ - **Support for exogenous variables**: if you have exogenous variables, this method can seemlessly incorporate them into the forecasting model.
39
+
40
+ On top of that, thanks to **[tabpfn-client](https://github.com/automl/tabpfn-client)** from **[Prior Labs](https://priorlabs.ai)**, you won’t even need your own GPU to run fast inference with TabPFNv2. 😉 We have included `tabpfn-client` as the default engine in our implementation.
41
+
42
+ ## How to use it?
43
+
44
+ [![colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/liam-sbhoo/tabpfn-time-series/blob/main/demo.ipynb)
45
+
46
+ The demo should explain it all. 😉