Skip to main content

DA-STDK: Data-adaptive spatio-temporal distributional prediction (cluster-adaptive bases, conformal calibration)

Project description

DA-STDK

PyPI Python Tests Code Quality

Reference code for cluster-aware conformal calibration in spatio-temporal distributional prediction.

  • Cluster-adaptive spatial bases — centers and scales initialized from sampling density, so capacity follows heterogeneous observation patterns instead of a fixed grid.
  • Cluster-aware conformal calibration — interval widths are calibrated within spatial clusters, with a global fallback when local samples are scarce.

Benchmarks in this repo use the KAUST spatio-temporal datasets (scenarios 2a/2b).

Architecture

Model backbone

Cluster-adaptive spatial basis, temporal basis, and covariates are concatenated and passed through a shared MLP trunk. Quantile heads predict multiple levels; cluster-aware CQR produces calibrated prediction intervals.

Install

Python 3.10+ and Poetry are enough for most use:

poetry install --with dev

Optional: Conda env via bash envs/conda/build_conda_env.sh then conda activate st-dadk.

pip install da-stdk   # after a PyPI release
# or locally:
pip install -e .
import da_stdk
from da_stdk.models import STDKMLP, create_model
from da_stdk.data.kaust_loader import load_kaust_csv_single

Run

Single training run

poetry run python scripts/train_default.py

KAUST benchmark (multiple scenarios / models)

make kaust
# or (train only, then analyze manually):
poetry run python scripts/run_kaust_data.py --config configs/config_default.yaml
poetry run python scripts/analyze_kaust_results.py --results_dir results/kaust_data_<timestamp>

make kaust runs all scenario×model combos and calls analyze_kaust_results.py when finished (--analyze). Use make kaust-dry to preview commands.

More scripts and flags: scripts/README.md.

Layout

Path Contents
da_stdk/ Models, training, data I/O, conformal utils, viz
scripts/ Training and experiment drivers
configs/ YAML configs
data/ KAUST CSVs (large; not on PyPI)

Dev

make test          # pytest
make lint          # black, isort, mypy
pre-commit run --all-files

Citation

If you use this code, please cite:

Cluster-Aware Conformal Calibration for Spatio-Temporal Distributional Prediction Gooyoung Kim, Chae Young Lim, Wen-Ting Wang, Hao-Yun Huang, Wei-Ying Wu arXiv preprint (link forthcoming)

@misc{kim2026cluster,
  title        = {Cluster-Aware Conformal Calibration for Spatio-Temporal Distributional Prediction},
  author       = {Kim, Gooyoung and Lim, Chae Young and Wang, Wen-Ting and Huang, Hao-Yun and Wu, Wei-Ying},
  year         = {2026},
  note         = {arXiv preprint, forthcoming},
}

When the arXiv entry is available, add eprint, archivePrefix, and primaryClass (or url) to the BibTeX above.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

da_stdk-1.0.1.tar.gz (50.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

da_stdk-1.0.1-py3-none-any.whl (60.5 kB view details)

Uploaded Python 3

File details

Details for the file da_stdk-1.0.1.tar.gz.

File metadata

  • Download URL: da_stdk-1.0.1.tar.gz
  • Upload date:
  • Size: 50.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for da_stdk-1.0.1.tar.gz
Algorithm Hash digest
SHA256 63eecd08312cf7337445a88c4f30adc1281efff3148a2eccb007a926a9995eb7
MD5 e802a8df71b9ff1bd261d7c90bfaf74d
BLAKE2b-256 edc700962181d84c4267aa58fede04511ff8a5e997c4b554c273a2a99689576f

See more details on using hashes here.

File details

Details for the file da_stdk-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: da_stdk-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 60.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for da_stdk-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ee4040b96f94a4e596b1a702ec8c7430833c66cfbb2ab49c3af8625132b778b4
MD5 d3145eea7763d6cb1f052ecd2aad1d4f
BLAKE2b-256 e88417763ffaa59d0c5472f403390d4e4a27867986172d2faa1d07c50bc9e4f4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page