|
Download README.md from RLTT/new-generator: direct link, hf CLI and curl.
- Browser
- Download file 4.25 kB
-
https://huggingface.co/RLTT/new-generator/resolve/main/README.md
- Command line
-
hf download hf://RLTT/new-generator/README.md
-
curl -L -o README.md https://huggingface.co/RLTT/new-generator/resolve/main/README.md
4.25 kB
| # new_generator β compositional SARIMA-backbone cascade generator | |
| A self-contained cascade data generator that uses a **SARIMA(p,d,q)(P,D,Q)_s** | |
| process as its dynamical backbone and layers the ingredients that modern | |
| synthetic-data priors for time-series foundation models rely on. A pure SARIMA | |
| corpus is classic but *narrow* (linear, near-Gaussian, stationary bar the | |
| integration); this generator keeps SARIMA's well-behaved, guaranteed-stationary | |
| recursion as the core and enriches it toward the SOTA recipe. | |
| ## What's inside | |
| | file | purpose | | |
| |------|---------| | |
| | `generator.py` | `class Generator(DataGenerator)` β the entrypoint | | |
| | `config.json` | length band, SARIMA order caps, enrichment probabilities | | |
| | `requirements.txt` | hash-locked, allowlisted deps (`numpy`, `scipy`) | | |
| ## The recipe | |
| **SARIMA backbone.** Each segment is a draw from `SARIMA(p,d,q)(P,D,Q)_s`: | |
| `(p,q)` non-seasonal AR/MA, `d` integration (stochastic trends), `(P,D,Q)_s` | |
| seasonal terms coupling seasonality with autocorrelation. | |
| **SOTA enrichments layered on top:** | |
| 1. **Regime switching** β a series is 1β3 concatenated segments, each its own | |
| SARIMA parameterisation, stitched with level continuity β structural breaks in | |
| dynamics a single stationary ARMA can't produce. | |
| 2. **Stochastic volatility** β innovations are modulated by an AR(1) log-variance | |
| process (vectorised) β volatility *clustering*, on top of Gaussian or Student-t | |
| (fat-tailed) shocks. | |
| 3. **Compositional components** β additive nested-calendar seasonality, smooth | |
| trends, structural level shifts and sparse spikes/outliers, each scaled | |
| relative to the core (KernelSynth-style composition). | |
| 4. **Nonlinear warps** β optional invertible transform (asinh tail-compression, | |
| exp/softplus positivity, signed power) β non-Gaussian / positive / | |
| multiplicative marginals, like real demand, price and count series. | |
| 5. **TSMixup** β with some probability two independent draws are convex-combined | |
| (the Chronos augmentation), broadening the corpus beyond any single prior. | |
| ## Why this is stronger than plain SARIMA | |
| Plain SARIMA teaches a narrow, linear-Gaussian forecaster. The enrichments add | |
| exactly the dynamics the leading TSFM synthetic priors exploit and that real | |
| held-out series exhibit β regime breaks, volatility clustering, fat tails, | |
| non-Gaussian/positive marginals, compositional multi-scale structure, and mixed | |
| series. It is *not* a claim of a leaderboard win (SOTA is empirical β measure it | |
| with `cascade score`), but the prior now spans the space those recipes cover. | |
| ## Stability & determinism | |
| AR/MA coefficients (regular and seasonal) are drawn as reflection coefficients in | |
| `(-1, 1)` and mapped to lag polynomials by **Levinson-Durbin**, guaranteeing all | |
| roots outside the unit circle β the `scipy.signal.lfilter` recursion never | |
| diverges. Integration is de-meaned first; warp exponents are clipped; each series | |
| is rescaled to a sampled target scale and hard-clipped to `max_abs_value`. | |
| Everything is **fully vectorised** (no per-timestep Python loops), so generation | |
| is linear-time and CPU-only. The corpus is a pure function of `(seed, n_series)` | |
| via `np.random.SeedSequence` sub-seeds β no `hash()`, wall-clock, or unseeded RNG. | |
| ## Verify | |
| ```bash | |
| # from the cascade repo root, with deps installed and cascade importable | |
| cascade verify ../new_generator | |
| ``` | |
| ## Config knobs (`config.json`) | |
| - `min_length` / `max_length` β per-series length band. | |
| - `max_ar` / `max_ma` / `max_seasonal_ar` / `max_seasonal_ma` β SARIMA order caps. | |
| - `d_weights` / `seasonal_d_weights` β integration-order probability mass. | |
| - `seasonal_prob` β probability a series carries seasonal structure. | |
| - `student_t_prob` / `stoch_vol_prob` β fat-tailed / volatility-clustered innovations. | |
| - `regime_prob` / `max_regimes` β regime-switching frequency and segment count. | |
| - `trend_prob` / `calendar_prob` / `level_shift_prob` / `spike_prob` β additive components. | |
| - `warp_prob` β probability of a nonlinear marginal warp. | |
| - `mixup_prob` β probability of TSMixup convex combination. | |
| - `standardize` β z-normalise each series (default `false`). | |
| - `max_abs_value` β hard magnitude clip to keep output trainer-safe finite. | |