Skip to content

Add a Nixtla global gradient-boosting engine to the mlforecast app#24

Open
dnplkndll wants to merge 1 commit into
masterfrom
mlforecast-nixtla
Open

Add a Nixtla global gradient-boosting engine to the mlforecast app#24
dnplkndll wants to merge 1 commit into
masterfrom
mlforecast-nixtla

Conversation

@dnplkndll

Copy link
Copy Markdown

Fork-internal PR to run CI before upstreaming to frePPLe/frepple.

Adds an opt-in nixtla engine (global LightGBM via the Nixtla mlforecast library) to the mlforecast app, selectable with forecast.MachineLearning_engine (default orbit, unchanged). Validated end-to-end on the demo_ai_forecasting fixture; core unit-tested. Full upstream description in mlforecast-nixtla-PR.md.

The mlforecast app gains a second, selectable engine via the new parameter
forecast.MachineLearning_engine (default "orbit", unchanged behaviour):

- "orbit": the existing per-series Bayesian model.
- "nixtla": a single global LightGBM model (mlforecast + lightgbm, needs the
  libgomp1 system library) trained across all forecast records, using lag,
  rolling-window and calendar features. Series with too little history, or a
  failed fit, fall back to the statistical forecast exactly like orbit.

The forecasting core lives in freppledb/mlforecast/nixtla.py with no dependency
on the planning engine, so it is covered by unit tests. The statistical
forecast solver skips the new parameter, and the app documentation describes
both engines and their dependencies.
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.

1 participant