Skip to content

release: probabilistic head + ConfigEntsoe feature-flag parity#351

Merged
bartzbeielstein merged 7 commits into
mainfrom
develop
Jun 8, 2026
Merged

release: probabilistic head + ConfigEntsoe feature-flag parity#351
bartzbeielstein merged 7 commits into
mainfrom
develop

Conversation

@bartzbeielstein

Copy link
Copy Markdown
Collaborator

Promotes #349 (feat(forecaster): quantile-LightGBM probabilistic head) and #350 (feat(configurator): ConfigEntsoe feature-flag parity). Expected bump: minor → 19.4.0. All develop CI green. 🤖 Generated with Claude Code

bartzbeielstein and others added 7 commits June 8, 2026 19:30
Implements chapter-16 "adopt next" #3 (point → calibrated bands) as a thin,
sf2-safe convenience layer over the EXISTING interval machinery — it does not
duplicate predict_interval / predict_quantiles (residual bootstrapping +
split-conformal already on ForecasterRecursive). Adds native quantile
regression heads instead.

- quantile_lgbm_forecaster_factory(config, quantiles=(0.1,0.5,0.9)) →
  one ForecasterRecursive per quantile with
  LGBMRegressor(objective="quantile", alpha=q), same lag/rolling config as the
  default factory. Deterministic, LightGBM-only. Refs hong16b, roma19a.
- predict_quantile_band(forecasters, steps, enforce_monotonic=True) → assembles
  the per-quantile forecasts into q_<level> columns and applies the
  Chernozhukov rearrangement (row-wise sort) to remove quantile crossing.
- Fail-safe quantile validation (open (0,1), unique, non-empty).

For distribution-free coverage, compose with the existing
ForecasterRecursive.predict_interval(method="conformal").

Tests: 14 new (factory params, validation, rearrangement, fit/predict
integration). Suite 2413 passed; factories.py 100% coverage. Docs regenerated.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…robabilistic-head

feat(forecaster): quantile-LightGBM probabilistic head factory (#3)
## [19.3.0-rc.2](v19.3.0-rc.1...v19.3.0-rc.2) (2026-06-08)

### Features

* **forecaster:** quantile-LightGBM probabilistic head factory ([d44093f](d44093f)), closes [#3](#3)
ConfigEntsoe is an independent dataclass (not a ConfigMulti subclass), so the
opt-in feature flags added to ConfigMulti in 19.2.0/19.3.0 were unreachable for
the ENTSO-E single-target pipeline (the one the team_4 lecture uses). Mirror
them so ConfigEntsoe(...) can enable them:

- use_population_weighted_weather, include_degree_hours,
  include_apparent_temperature, degree_hours_base_{heating,cooling} (19.2.0)
- include_ephemeris_features, include_day_type_features (19.3.0)

All default off → byte-identical baseline. base.py already reads them via
getattr, so no wiring change is needed. Adds a parity test that fails if a
future ConfigMulti feature flag is not mirrored here.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…onfigentsoe-feature-flag-parity

feat(configurator): mirror new feature flags onto ConfigEntsoe (parity)
## [19.4.0-rc.1](v19.3.0...v19.4.0-rc.1) (2026-06-08)

### Features

* **configurator:** mirror new feature flags onto ConfigEntsoe (parity) ([a211271](a211271))
* **forecaster:** quantile-LightGBM probabilistic head factory ([d44093f](d44093f)), closes [#3](#3)
@bartzbeielstein bartzbeielstein merged commit 5f34658 into main Jun 8, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants