github springfall2008/batpred v8.33.7
LoadML improvements

14 hours ago

What's Changed

LoadML Improvements

Significant rework of the ML load forecasting system (load_predictor.py).

Model version has been bumped to 10. Any existing saved model will be automatically retrained on first run after upgrade.

What's New

  • Curriculum training — The model now trains in multiple passes over progressively larger windows of historical data (oldest → newest), improving convergence and generalisation before fine-tuning on the full dataset.

  • Inverted dropout (10%) — Dropout regularisation is applied during training to reduce overfitting. Inference requires no scaling adjustment.

  • Huber loss — Training loss replaced from MSE to Huber loss (δ=1.35), making the model more robust to outlier load spikes.

  • Improved early stopping — The stopping metric now combines MAE with median prediction bias (MAE × 0.5 + |bias|), with EMA smoothing (α=0.3) to suppress epoch-to-epoch oscillation.

  • Cosine learning rate decay — Learning rate anneals from lr_max down to 0.1 × lr_max over training, replacing the fixed rate.

  • Day-of-year seasonality features — Two additional time features (sin/cos of day-of-year) added for annual seasonal awareness. Total time features: 6 (up from 4).

  • Day-of-week aware daily pattern blending — Historical blending now maintains 7 separate per-weekday profiles (plus a global fallback), rather than a single average pattern.

  • AR rollout diagnostic — After training, an autoregressive multi-step rollout is run over the validation holdout and the drift vs. teacher-forced MAE is logged.

  • Network architecture — Hidden layers changed from [512, 256, 128, 64] to [512, 256, 64].

  • Training scheduling — Initial training is no longer triggered at component startup. Fine-tuning is age-based and uses curriculum training.

Full Changelog: v8.33.6...v8.33.7

Don't miss a new batpred release

NewReleases is sending notifications on new releases.