Skip to main content

RFT and edRFT models for significant wave-height time-series forecasting.

Project description

edRFT

edrft provides Random Vector Functional Link Transformer models for significant wave-height forecasting:

  • RFTRegressor: a shallow randomized transformer encoder with ridge readout.
  • EDRFTRegressor: an ensemble deep RFT with one output layer per hidden layer.
  • Hyperopt/TPE tuning using the default edRFT search ranges.
  • NDBC wave forecasting experiment helpers that do not write result artifacts.

The public package uses the model naming: RFT and edRFT. Older rft and edrft script names are retained only under legacy files for traceability.

Installation

Core install:

git clone https://github.com/statsdl/edRFT.git
cd edRFT
pip install .

Wave experiment dependencies:

pip install ".[wave]"

Development:

pip install -e ".[dev]"
pytest

Quick Start

import numpy as np
from edrft import EDRFTRegressor, make_forecasting_frame

series = np.sin(np.linspace(0, 16, 240))
X, y = make_forecasting_frame(series, order=4)

model = EDRFTRegressor(n_layers=3, n_hidden=32, random_state=0)
model.fit(X[:180], y[:180])
pred = model.predict(X[180:])

Wave Forecasting Example

python examples/run_wave_forecasting.py \
  --data-dir wave \
  --stations 46001h \
  --years 2017 \
  --seeds 0 \
  --look-back 48 \
  --horizon 4 \
  --layers 10 \
  --max-evals 100

The runner prints metrics to stdout only. It follows the original scripts:

  • NDBC features: WDIR, WSPD, GST, APD, WVHT
  • Missing sentinel cleanup
  • Default look-back window: 48
  • Default forecasting horizon: 4
  • Min-max scaling to [-1, 1]
  • Chronological split: 70% train, 10% validation, 20% test
  • Hyperopt/TPE tuning with 100 evaluations by default
  • Train+validation final fit
  • RMSE, MAPE, MASE, and timing output

Hyperopt Tuning

from edrft.tuning import layerwise_tune_edrft

result = layerwise_tune_edrft(
    X,
    y,
    n_layers=10,
    validation_fraction=0.1 / 0.8,
    max_evals=100,
    random_state=0,
)

Repository Notes

Supported package code lives in src/edrft.

The legacy/, DeepRVFL_/, ForecastLib.py, and old experiment scripts are retained for traceability. They are not included in the PyPI wheel and are not the supported package API.

PyPI Release

The publish workflow uses PyPI Trusted Publishing. Configure the PyPI trusted publisher with:

  • owner: statsdl
  • repository: edRFT
  • workflow: publish.yml
  • environment: pypi

License

MIT

Reference

If you use edRFT in your work, please cite:

@article{bhambu2025deep,
  title={Deep random vector functional link transformer network with multiple output layers for significant wave height forecasting},
  author={Bhambu, Aryan and Gao, Ruobin and Suganthan, Ponnuthurai Nagaratnam and Selvaraju, Natarajan},
  journal={Applied Soft Computing},
  pages={114136},
  year={2025},
  publisher={Elsevier}
}

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

edrft-0.1.0.tar.gz (14.0 kB view details)

Uploaded Source

Built Distribution

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

edrft-0.1.0-py3-none-any.whl (12.0 kB view details)

Uploaded Python 3

File details

Details for the file edrft-0.1.0.tar.gz.

File metadata

  • Download URL: edrft-0.1.0.tar.gz
  • Upload date:
  • Size: 14.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for edrft-0.1.0.tar.gz
Algorithm Hash digest
SHA256 f44ec5b828abad8177316cd29c1a43603c1838802dfd0d313e044b8917024efa
MD5 42a157c1e757989506ee3a97adf2fe9d
BLAKE2b-256 4c49e122e5d8867e5c6464b09f76df5bc920b5b4eb5b81f3b94dfd877ce5ecdf

See more details on using hashes here.

Provenance

The following attestation bundles were made for edrft-0.1.0.tar.gz:

Publisher: publish.yml on statsdl/edRFT

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file edrft-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: edrft-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 12.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for edrft-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 b472ed7b584720935f6b727b1d99b9514b7436c99890cedda233da14ade99c4d
MD5 26ea89dba9d31c275dd8d77f787b45d9
BLAKE2b-256 d060d97cd72534661eed0bc02582ff530d28af051eed3b4513a741c77225dae2

See more details on using hashes here.

Provenance

The following attestation bundles were made for edrft-0.1.0-py3-none-any.whl:

Publisher: publish.yml on statsdl/edRFT

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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