DAG-UPB/ts-arena-context-mase-splitted
TS-Arena — Context & MASE (train / test split) Two Hive-partitioned Parquet datasets derived from the TS-Arena forecasting benchmark (energy challenges), keyed identically so they line up 1:1 on (unique_id, year_month, round_id), and pre-split into train / test: context — the input window X: each challenge round's context (history) for each time series. Columns: timestamp, value. mases — the evaluation y: every model's MASE on that (round, series). Columns: model_id, model_name… See the full description on the dataset page: https://huggingface.co/datasets/DAG-UPB/ts-arena-context-mase-splitted.
TS-Arena — Context & MASE (train / test split)
Two Hive-partitioned Parquet datasets derived from the TS-Arena forecasting benchmark (energy challenges), keyed identically so they line up 1:1 on (unique_id, year_month, round_id), and pre-split into train / test:
- `context` — the input window X: each challenge round's context (history) for each time series. Columns:
timestamp,value. - `mases` — the evaluation y: every model's MASE on that
(round, series). Columns:model_id,model_name,mase.
The task this dataset supports: predict which model wins on which series, given the series context.
Layout
The data is shipped already split into three top-level splits, each containing the context and mases datasets:
train/ context/ unique_id=<series>/ year_month=YYYY-MM/ round_id=<N>/ part-*.parquet # timestamp, value
mases/ unique_id=<series>/ year_month=YYYY-MM/ round_id=<N>/ part-*.parquet # model_id, model_name, mase
test_time/ context/ … mases/ …
test_heldout/ context/ … mases/ …
round_split.parquet | round_split.csv # round_id -> split manifestPartition columns (unique_id, year_month, round_id) are encoded in the directory paths (Hive style) and dropped from the leaf files.
The three splits
The two fingrid challenges are held out completely (regardless of date). registration_start is the round's scheduling anchor; the 2026-01-01 cutoff is compared in UTC. Counts: train 4,380 · test_time 2,192 · test_heldout 1,098 rounds.
round_split.parquet maps each round_id to its schedule_id, registration_start, and split.
Usage
import pyarrow.dataset as ds
from huggingface_hub import snapshot_download
root = snapshot_download("DAG-UPB/ts-arena-context-mase-splitted", repo_type="dataset")
train_ctx = ds.dataset(f"{root}/train/context", partitioning="hive").to_table()
train_mases = ds.dataset(f"{root}/train/mases", partitioning="hive").to_table()
heldout_ctx = ds.dataset(f"{root}/test_heldout/context", partitioning="hive").to_table()Or query lazily with DuckDB:
SELECT * FROM 'train/context/**/*.parquet';Provenance
Reconstructed read-only from the TS-Arena database (point-in-time SCD2 context, aggregated to each challenge's frequency), then split by round_id. Reproduction code lives in the ts-arena-ensemble repository (data_acquisition/generate_parquets.py, data_acquisition/train_test_split.py). Energy challenges only; Tankerkönig fuel-price challenges excluded.
