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.
- tabpfn_time_series-1.0.1/.cache/huggingface/download/config.json.metadata +3 -0
- {tabpfn_time_series-0.1.3 → tabpfn_time_series-1.0.1}/.cache/huggingface/download/tabpfn-v2-regressor-2noar4o2.ckpt.metadata +2 -2
- tabpfn_time_series-1.0.1/.cache/huggingface/download/tabpfn-v2-regressor.ckpt.lock +0 -0
- tabpfn_time_series-1.0.1/.cache/huggingface/download/tabpfn-v2-regressor.ckpt.metadata +3 -0
- tabpfn_time_series-1.0.1/.github/workflows/pull_request.yml +61 -0
- {tabpfn_time_series-0.1.3 → tabpfn_time_series-1.0.1}/.pre-commit-config.yaml +3 -3
- {tabpfn_time_series-0.1.3 → tabpfn_time_series-1.0.1}/PKG-INFO +45 -22
- tabpfn_time_series-1.0.1/README.md +64 -0
- tabpfn_time_series-1.0.1/demo.ipynb +1078 -0
- tabpfn_time_series-1.0.1/pyproject.toml +51 -0
- tabpfn_time_series-1.0.1/tabpfn_time_series/__init__.py +21 -0
- {tabpfn_time_series-0.1.3 → tabpfn_time_series-1.0.1}/tabpfn_time_series/defaults.py +1 -3
- tabpfn_time_series-1.0.1/tabpfn_time_series/features/__init__.py +17 -0
- tabpfn_time_series-1.0.1/tabpfn_time_series/features/auto_features.py +307 -0
- tabpfn_time_series-1.0.1/tabpfn_time_series/features/basic_features.py +88 -0
- tabpfn_time_series-1.0.1/tabpfn_time_series/features/feature_generator_base.py +21 -0
- tabpfn_time_series-1.0.1/tabpfn_time_series/features/feature_transformer.py +53 -0
- {tabpfn_time_series-0.1.3 → tabpfn_time_series-1.0.1}/tabpfn_time_series/tabpfn_worker.py +46 -10
- {tabpfn_time_series-0.1.3 → tabpfn_time_series-1.0.1}/tests/test_predictor.py +16 -8
- tabpfn_time_series-1.0.1/uv.lock +5716 -0
- tabpfn_time_series-0.1.3/.cache/huggingface/download/config.json.metadata +0 -3
- tabpfn_time_series-0.1.3/.github/workflows/pull_request.yml +0 -59
- tabpfn_time_series-0.1.3/README.md +0 -48
- tabpfn_time_series-0.1.3/demo.ipynb +0 -1137
- tabpfn_time_series-0.1.3/local_notebooks/analysis.ipynb +0 -1193
- tabpfn_time_series-0.1.3/local_notebooks/figures/performance_by_dataset_MASE.pdf +0 -0
- tabpfn_time_series-0.1.3/local_notebooks/figures/performance_by_domain_MASE.pdf +0 -0
- tabpfn_time_series-0.1.3/local_notebooks/figures/performance_by_freq_MASE.pdf +0 -0
- tabpfn_time_series-0.1.3/local_notebooks/figures/performance_by_num_variates_MASE.pdf +0 -0
- tabpfn_time_series-0.1.3/local_notebooks/trend_column.ipynb +0 -1055
- tabpfn_time_series-0.1.3/local_scripts/aggregate_result.py +0 -112
- tabpfn_time_series-0.1.3/local_scripts/run_eval_on_slurm.py +0 -111
- tabpfn_time_series-0.1.3/playground.ipynb +0 -470
- tabpfn_time_series-0.1.3/pyproject.toml +0 -35
- tabpfn_time_series-0.1.3/requirements-dev.txt +0 -6
- tabpfn_time_series-0.1.3/requirements.txt +0 -7
- tabpfn_time_series-0.1.3/tabpfn-v2-regressor-2noar4o2.ckpt +0 -0
- tabpfn_time_series-0.1.3/tabpfn_time_series/__init__.py +0 -13
- tabpfn_time_series-0.1.3/tabpfn_time_series/feature.py +0 -78
- {tabpfn_time_series-0.1.3 → tabpfn_time_series-1.0.1}/.cache/huggingface/.gitignore +0 -0
- {tabpfn_time_series-0.1.3 → tabpfn_time_series-1.0.1}/.cache/huggingface/download/config.json.lock +0 -0
- {tabpfn_time_series-0.1.3 → tabpfn_time_series-1.0.1}/.cache/huggingface/download/tabpfn-v2-regressor-2noar4o2.ckpt.lock +0 -0
- {tabpfn_time_series-0.1.3 → tabpfn_time_series-1.0.1}/.gitignore +0 -0
- {tabpfn_time_series-0.1.3 → tabpfn_time_series-1.0.1}/LICENSE.txt +0 -0
- {tabpfn_time_series-0.1.3 → tabpfn_time_series-1.0.1}/ruff.toml +0 -0
- {tabpfn_time_series-0.1.3 → tabpfn_time_series-1.0.1}/tabpfn_time_series/data_preparation.py +0 -0
- {tabpfn_time_series-0.1.3 → tabpfn_time_series-1.0.1}/tabpfn_time_series/plot.py +0 -0
- {tabpfn_time_series-0.1.3 → tabpfn_time_series-1.0.1}/tabpfn_time_series/predictor.py +0 -0
@@ -1,3 +1,3 @@
|
|
1
|
-
|
1
|
+
213f8e38ec399a2a385fa46cab6f22b95cd90de8
|
2
2
|
e2d4a06eeb4521dee71fc68d819e277ffb97614cc3695dc9ac3030dd9da36c21
|
3
|
-
|
3
|
+
1752652785.2545302
|
File without changes
|
@@ -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.
|
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:
|
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
|
4
|
-
Summary: Zero-shot time series forecasting with
|
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>=
|
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:
|
18
|
-
Requires-Dist:
|
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:
|
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
|
-
#
|
35
|
+
# TabPFN-TS
|
36
|
+
|
37
|
+
> Zero-Shot Time Series Forecasting with TabPFNv2
|
29
38
|
|
30
39
|
[](https://badge.fury.io/py/tabpfn-time-series)
|
31
|
-
[](https://colab.research.google.com/github/
|
40
|
+
[](https://colab.research.google.com/github/PriorLabs/tabpfn-time-series/blob/main/demo.ipynb)
|
32
41
|
[](https://discord.com/channels/1285598202732482621/)
|
33
|
-
[](https://arxiv.org/abs/2501.
|
42
|
+
[](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.
|
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 **[
|
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
|
53
|
-
3. Perform regression on the table using
|
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.
|
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
|
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 won
|
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
|
-
##
|
76
|
+
## ⚙️ Installation
|
66
77
|
|
67
|
-
|
78
|
+
You can install the package via pip:
|
68
79
|
|
69
|
-
|
80
|
+
```bash
|
81
|
+
pip install tabpfn-time-series
|
82
|
+
```
|
83
|
+
|
84
|
+
### For Developers
|
70
85
|
|
71
|
-
|
86
|
+
To install the package in editable mode with all development dependencies, run the following command in your terminal:
|
72
87
|
|
73
|
-
|
88
|
+
```bash
|
89
|
+
pip install -e ".[dev]"
|
90
|
+
# or with uv
|
91
|
+
uv pip install -e ".[dev]"
|
92
|
+
```
|
74
93
|
|
75
|
-
|
94
|
+
## How to use it?
|
95
|
+
|
96
|
+
[](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
|
+
[](https://badge.fury.io/py/tabpfn-time-series)
|
6
|
+
[](https://colab.research.google.com/github/PriorLabs/tabpfn-time-series/blob/main/demo.ipynb)
|
7
|
+
[](https://discord.com/channels/1285598202732482621/)
|
8
|
+
[](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
|
+

|
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
|
+
[](https://colab.research.google.com/github/PriorLabs/tabpfn-time-series/blob/main/demo.ipynb)
|
63
|
+
|
64
|
+
The demo should explain it all. 😉
|