Time-Shell Long-Horizon Decoder / custom_track.py
Beats tuned baseline
1import numpy as np
2
3META = {
4 "name": "multihorizon_sequence",
5 "domain": "sequence",
6 "description": "Window-to-multiple-future-values prediction for weak-memory sinusoidal dynamics."
7}
8
9def get_dataset(seed, n_train=400, n_test=400):
10 rng = np.random.default_rng(int(seed))
11 total = int(n_train) + int(n_test)
12 win, horizon = 32, 16
13 t = np.arange(win + horizon, dtype=np.float32)[None, :]
14 phase = rng.uniform(-np.pi, np.pi, (total, 3)).astype(np.float32)
15 freq = np.array([0.08, 0.17, 0.31], dtype=np.float32)[None, :]
16 amp = np.array([0.9, 0.45, 0.25], dtype=np.float32)[None, :]
17 signal = np.zeros((total, win + horizon), dtype=np.float32)
18 for i in range(3):
19 signal += amp[:, i:i+1] * np.sin(freq[:, i:i+1] * t + phase[:, i:i+1])
20 signal += 0.025 * rng.normal(size=signal.shape).astype(np.float32)
21 return {"xtr": signal[:n_train, :win], "ytr": signal[:n_train, win:],
22 "xte": signal[n_train:, :win], "yte": signal[n_train:, win:],
23 "task": "regression", "metric": "mse", "out_dim": horizon}