CoolFace
Datasetpublic

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.

sourceHugging Facecc-by-4.0updated 3mo agoView on Hugging Face
0likes103downloads
Dataset Card

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 manifest

Partition columns (unique_id, year_month, round_id) are encoded in the directory paths (Hive style) and dropped from the leaf files.

The three splits

splitrulepurpose
trainnon-fingrid challenge and registration_start < 2026-01-01training data
test_timenon-fingrid challenge and registration_start >= 2026-01-01temporal generalisation (same challenges, later rounds)
test_heldoutthe two fingrid challenges (fingrid_challenge_24h_15min, fingrid_challenge_72h_1h), all dateschallenge generalisation (entirely unseen challenges)

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

python
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:

sql
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.