tabpfn-time-series 0.1.3__tar.gz → 1.0.1__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 (48) hide show
  1. tabpfn_time_series-1.0.1/.cache/huggingface/download/config.json.metadata +3 -0
  2. {tabpfn_time_series-0.1.3 → tabpfn_time_series-1.0.1}/.cache/huggingface/download/tabpfn-v2-regressor-2noar4o2.ckpt.metadata +2 -2
  3. tabpfn_time_series-1.0.1/.cache/huggingface/download/tabpfn-v2-regressor.ckpt.lock +0 -0
  4. tabpfn_time_series-1.0.1/.cache/huggingface/download/tabpfn-v2-regressor.ckpt.metadata +3 -0
  5. tabpfn_time_series-1.0.1/.github/workflows/pull_request.yml +61 -0
  6. {tabpfn_time_series-0.1.3 → tabpfn_time_series-1.0.1}/.pre-commit-config.yaml +3 -3
  7. {tabpfn_time_series-0.1.3 → tabpfn_time_series-1.0.1}/PKG-INFO +45 -22
  8. tabpfn_time_series-1.0.1/README.md +64 -0
  9. tabpfn_time_series-1.0.1/demo.ipynb +1078 -0
  10. tabpfn_time_series-1.0.1/pyproject.toml +51 -0
  11. tabpfn_time_series-1.0.1/tabpfn_time_series/__init__.py +21 -0
  12. {tabpfn_time_series-0.1.3 → tabpfn_time_series-1.0.1}/tabpfn_time_series/defaults.py +1 -3
  13. tabpfn_time_series-1.0.1/tabpfn_time_series/features/__init__.py +17 -0
  14. tabpfn_time_series-1.0.1/tabpfn_time_series/features/auto_features.py +307 -0
  15. tabpfn_time_series-1.0.1/tabpfn_time_series/features/basic_features.py +88 -0
  16. tabpfn_time_series-1.0.1/tabpfn_time_series/features/feature_generator_base.py +21 -0
  17. tabpfn_time_series-1.0.1/tabpfn_time_series/features/feature_transformer.py +53 -0
  18. {tabpfn_time_series-0.1.3 → tabpfn_time_series-1.0.1}/tabpfn_time_series/tabpfn_worker.py +46 -10
  19. {tabpfn_time_series-0.1.3 → tabpfn_time_series-1.0.1}/tests/test_predictor.py +16 -8
  20. tabpfn_time_series-1.0.1/uv.lock +5716 -0
  21. tabpfn_time_series-0.1.3/.cache/huggingface/download/config.json.metadata +0 -3
  22. tabpfn_time_series-0.1.3/.github/workflows/pull_request.yml +0 -59
  23. tabpfn_time_series-0.1.3/README.md +0 -48
  24. tabpfn_time_series-0.1.3/demo.ipynb +0 -1137
  25. tabpfn_time_series-0.1.3/local_notebooks/analysis.ipynb +0 -1193
  26. tabpfn_time_series-0.1.3/local_notebooks/figures/performance_by_dataset_MASE.pdf +0 -0
  27. tabpfn_time_series-0.1.3/local_notebooks/figures/performance_by_domain_MASE.pdf +0 -0
  28. tabpfn_time_series-0.1.3/local_notebooks/figures/performance_by_freq_MASE.pdf +0 -0
  29. tabpfn_time_series-0.1.3/local_notebooks/figures/performance_by_num_variates_MASE.pdf +0 -0
  30. tabpfn_time_series-0.1.3/local_notebooks/trend_column.ipynb +0 -1055
  31. tabpfn_time_series-0.1.3/local_scripts/aggregate_result.py +0 -112
  32. tabpfn_time_series-0.1.3/local_scripts/run_eval_on_slurm.py +0 -111
  33. tabpfn_time_series-0.1.3/playground.ipynb +0 -470
  34. tabpfn_time_series-0.1.3/pyproject.toml +0 -35
  35. tabpfn_time_series-0.1.3/requirements-dev.txt +0 -6
  36. tabpfn_time_series-0.1.3/requirements.txt +0 -7
  37. tabpfn_time_series-0.1.3/tabpfn-v2-regressor-2noar4o2.ckpt +0 -0
  38. tabpfn_time_series-0.1.3/tabpfn_time_series/__init__.py +0 -13
  39. tabpfn_time_series-0.1.3/tabpfn_time_series/feature.py +0 -78
  40. {tabpfn_time_series-0.1.3 → tabpfn_time_series-1.0.1}/.cache/huggingface/.gitignore +0 -0
  41. {tabpfn_time_series-0.1.3 → tabpfn_time_series-1.0.1}/.cache/huggingface/download/config.json.lock +0 -0
  42. {tabpfn_time_series-0.1.3 → tabpfn_time_series-1.0.1}/.cache/huggingface/download/tabpfn-v2-regressor-2noar4o2.ckpt.lock +0 -0
  43. {tabpfn_time_series-0.1.3 → tabpfn_time_series-1.0.1}/.gitignore +0 -0
  44. {tabpfn_time_series-0.1.3 → tabpfn_time_series-1.0.1}/LICENSE.txt +0 -0
  45. {tabpfn_time_series-0.1.3 → tabpfn_time_series-1.0.1}/ruff.toml +0 -0
  46. {tabpfn_time_series-0.1.3 → tabpfn_time_series-1.0.1}/tabpfn_time_series/data_preparation.py +0 -0
  47. {tabpfn_time_series-0.1.3 → tabpfn_time_series-1.0.1}/tabpfn_time_series/plot.py +0 -0
  48. {tabpfn_time_series-0.1.3 → tabpfn_time_series-1.0.1}/tabpfn_time_series/predictor.py +0 -0
@@ -0,0 +1,3 @@
1
+ 213f8e38ec399a2a385fa46cab6f22b95cd90de8
2
+ 4ebfea74ce718dc9c31a353082ca83c9f2ecf6a8
3
+ 1752652785.4350562
@@ -1,3 +1,3 @@
1
- 2274b01195d59dd91c77548f2eb0a4efa535d525
1
+ 213f8e38ec399a2a385fa46cab6f22b95cd90de8
2
2
  e2d4a06eeb4521dee71fc68d819e277ffb97614cc3695dc9ac3030dd9da36c21
3
- 1736408701.88352
3
+ 1752652785.2545302
@@ -0,0 +1,3 @@
1
+ 213f8e38ec399a2a385fa46cab6f22b95cd90de8
2
+ 2ab5a07d5c41dfe6db9aa7ae106fc6de898326c2765be66505a07e2868c10736
3
+ 1752652266.7761772
@@ -0,0 +1,61 @@
1
+ name: In pull request
2
+ on:
3
+ pull_request_target:
4
+ branches:
5
+ - main
6
+ - beta
7
+ - dev
8
+
9
+ jobs:
10
+ check_python_linting_formatting:
11
+ name: Ruff Linting & Formatting
12
+ runs-on: ubuntu-latest
13
+ steps:
14
+ - name: Checkout PR code safely
15
+ uses: actions/checkout@v4
16
+ with:
17
+ repository: ${{ github.event.pull_request.head.repo.full_name }}
18
+ ref: ${{ github.event.pull_request.head.ref }}
19
+
20
+ - name: Ruff Linting
21
+ uses: astral-sh/ruff-action@v3
22
+ with:
23
+ src: "./"
24
+ version: "0.12.0"
25
+ - name: Ruff Formatting
26
+ uses: astral-sh/ruff-action@v3
27
+ with:
28
+ src: "./"
29
+ version: "0.12.0"
30
+ args: 'format --check'
31
+
32
+ test_compatibility:
33
+ name: Test Package Compatibility
34
+ strategy:
35
+ fail-fast: false
36
+ matrix:
37
+ os: [ubuntu-latest, macos-latest, windows-latest]
38
+ python-version: ["3.10", "3.11", "3.12"]
39
+ runs-on: ${{ matrix.os }}
40
+ steps:
41
+ - name: Checkout PR code safely
42
+ uses: actions/checkout@v4
43
+ with:
44
+ repository: ${{ github.event.pull_request.head.repo.full_name }}
45
+ ref: ${{ github.event.pull_request.head.ref }}
46
+
47
+ - name: Set up Python ${{ matrix.python-version }}
48
+ uses: actions/setup-python@v5
49
+ with:
50
+ python-version: ${{ matrix.python-version }}
51
+
52
+ - name: Set up uv
53
+ uses: astral-sh/setup-uv@v5
54
+
55
+ - name: Install the project
56
+ run: uv sync --locked --all-extras --dev
57
+
58
+ - name: Run Tests
59
+ env:
60
+ TABPFN_CLIENT_API_KEY: ${{ secrets.TABPFN_CLIENT_API_KEY }}
61
+ run: uv run pytest tests
@@ -1,14 +1,14 @@
1
1
  repos:
2
2
  - repo: https://github.com/astral-sh/ruff-pre-commit
3
3
  # Ruff version.
4
- rev: v0.3.3
4
+ rev: v0.12.0
5
5
  hooks:
6
6
  # Run the linter.
7
- - id: ruff
7
+ - id: ruff-check
8
8
  # Run the formatter.
9
9
  - id: ruff-format
10
10
  - repo: https://github.com/pre-commit/pre-commit-hooks
11
- rev: 'v3.1.0'
11
+ rev: v4.6.0
12
12
  hooks:
13
13
  - id: no-commit-to-branch
14
14
  args: ['--branch', 'main']
@@ -1,7 +1,7 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: tabpfn_time_series
3
- Version: 0.1.3
4
- Summary: Zero-shot time series forecasting with TabPFN
3
+ Version: 1.0.1
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>
@@ -11,35 +11,45 @@ Classifier: Operating System :: OS Independent
11
11
  Classifier: Programming Language :: Python :: 3
12
12
  Requires-Python: >=3.10
13
13
  Requires-Dist: autogluon-timeseries>=1.2
14
- Requires-Dist: datasets>=3.3.2
14
+ Requires-Dist: datasets>=4.0
15
15
  Requires-Dist: gluonts>=0.16.0
16
16
  Requires-Dist: pandas<2.2.0,>=2.1.2
17
- Requires-Dist: tabpfn-client>=0.1.1
18
- Requires-Dist: tabpfn>=2.0.0
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
21
+ Requires-Dist: tomli>=2.2.1
19
22
  Requires-Dist: tqdm
20
23
  Provides-Extra: dev
21
24
  Requires-Dist: build; extra == 'dev'
25
+ Requires-Dist: ipykernel>=6.29.5; extra == 'dev'
22
26
  Requires-Dist: jupyter; extra == 'dev'
23
27
  Requires-Dist: pre-commit; extra == 'dev'
24
- Requires-Dist: ruff; extra == 'dev'
28
+ Requires-Dist: pytest; extra == 'dev'
29
+ Requires-Dist: ruff~=0.12.0; extra == 'dev'
30
+ Requires-Dist: submitit>=1.5.2; extra == 'dev'
25
31
  Requires-Dist: twine; extra == 'dev'
32
+ Requires-Dist: wandb>=0.19.8; extra == 'dev'
26
33
  Description-Content-Type: text/markdown
27
34
 
28
- # Zero-Shot Time Series Forecasting with TabPFN
35
+ # TabPFN-TS
36
+
37
+ > Zero-Shot Time Series Forecasting with TabPFNv2
29
38
 
30
39
  [![PyPI version](https://badge.fury.io/py/tabpfn-time-series.svg)](https://badge.fury.io/py/tabpfn-time-series)
31
- [![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)
40
+ [![colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/PriorLabs/tabpfn-time-series/blob/main/demo.ipynb)
32
41
  [![Discord](https://img.shields.io/discord/1285598202732482621?color=7289da&label=Discord&logo=discord&logoColor=ffffff)](https://discord.com/channels/1285598202732482621/)
33
- [![arXiv](https://img.shields.io/badge/arXiv-2501.02945-<COLOR>.svg)](https://arxiv.org/abs/2501.02945)
42
+ [![arXiv](https://img.shields.io/badge/arXiv-2501.02945-<COLOR>.svg)](https://arxiv.org/abs/2501.02945v3)
34
43
 
35
44
  ## 📌 News
45
+ - **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.
36
46
  - **27-01-2025**: 🚀 Ranked _**1st**_ on [GIFT-EVAL](https://huggingface.co/spaces/Salesforce/GIFT-Eval) benchmark<sup>[1]</sup>!
37
- - **10-10-2024**: 🚀 TabPFN-TS [paper](https://arxiv.org/abs/2501.02945) accepted to NeurIPS 2024 [TRL](https://table-representation-learning.github.io/NeurIPS2024/) and [TSALM](https://neurips-time-series-workshop.github.io/) workshops!
47
+ - **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!
38
48
 
39
49
  _[1] Last checked on: 10/03/2025_
40
50
 
41
51
  ## ✨ Introduction
42
- 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.
52
+ 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.
43
53
 
44
54
  ## 📖 How does it work?
45
55
 
@@ -49,27 +59,40 @@ Our work proposes to frame **univariate time series forecasting** as a **tabular
49
59
 
50
60
  Concretely, we:
51
61
  1. Transform a time series into a table
52
- 2. Extract features from timestamp and add them to the table
53
- 3. Perform regression on the table using TabPFN
62
+ 2. Extract features and add them to the table
63
+ 3. Perform regression on the table using TabPFNv2
54
64
  4. Use regression results as time series forecasting outputs
55
65
 
56
- 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).
66
+ For more details, please refer to our [paper](https://arxiv.org/abs/2501.02945v3).
67
+ <!-- and our [poster](docs/tabpfn-ts-neurips-poster.pdf) (presented at NeurIPS 2024 TRL and TSALM workshops). -->
57
68
 
58
- ## 👉 **Why gives us a try?**
69
+ ## 👉 **Why give us a try?**
59
70
  - **Zero-shot forecasting**: this method is extremely fast and requires no training, making it highly accessible for experimenting with your own problems.
60
71
  - **Point and probabilistic forecasting**: it provides accurate point forecasts as well as probabilistic forecasts.
61
72
  - **Support for exogenous variables**: if you have exogenous variables, this method can seemlessly incorporate them into the forecasting model.
62
73
 
63
- On top of that, thanks to **[tabpfn-client](https://github.com/automl/tabpfn-client)** from **[Prior Labs](https://priorlabs.ai)**, you wont even need your own GPU to run fast inference with TabPFN. 😉 We have included `tabpfn-client` as the default engine in our implementation.
74
+ 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.
64
75
 
65
- ## How to use it?
76
+ ## ⚙️ Installation
66
77
 
67
- [![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)
78
+ You can install the package via pip:
68
79
 
69
- The demo should explain it all. 😉
80
+ ```bash
81
+ pip install tabpfn-time-series
82
+ ```
83
+
84
+ ### For Developers
70
85
 
71
- ## 📊 GIFT-EVAL Benchmark
86
+ To install the package in editable mode with all development dependencies, run the following command in your terminal:
72
87
 
73
- We have submitted our results to the [GIFT-EVAL](https://huggingface.co/spaces/Salesforce/GIFT-Eval) benchmark. Stay tuned for results!
88
+ ```bash
89
+ pip install -e ".[dev]"
90
+ # or with uv
91
+ uv pip install -e ".[dev]"
92
+ ```
74
93
 
75
- For more details regarding the evaluation setup, please refer to [README.md](gift_eval/README.md).
94
+ ## How to use it?
95
+
96
+ [![colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/PriorLabs/tabpfn-time-series/blob/main/demo.ipynb)
97
+
98
+ The demo should explain it all. 😉
@@ -0,0 +1,64 @@
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/PriorLabs/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 give 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
+ ## ⚙️ Installation
43
+
44
+ You can install the package via pip:
45
+
46
+ ```bash
47
+ pip install tabpfn-time-series
48
+ ```
49
+
50
+ ### For Developers
51
+
52
+ To install the package in editable mode with all development dependencies, run the following command in your terminal:
53
+
54
+ ```bash
55
+ pip install -e ".[dev]"
56
+ # or with uv
57
+ uv pip install -e ".[dev]"
58
+ ```
59
+
60
+ ## How to use it?
61
+
62
+ [![colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/PriorLabs/tabpfn-time-series/blob/main/demo.ipynb)
63
+
64
+ The demo should explain it all. 😉