]> Piment Noir Git Repositories - freqai-strategies.git/commit
feat(quickadapter): make HPO trial seed variation configurable (#119)
authorJérôme Benoit <jerome.benoit@piment-noir.org>
Sun, 26 Jul 2026 19:58:41 +0000 (21:58 +0200)
committerGitHub <noreply@github.com>
Sun, 26 Jul 2026 19:58:41 +0000 (21:58 +0200)
commitbda5bfd388ac11492f36a4f70d182766a8fb3893
tree7a9e09624a50bc0a7517c9293665d32493688ad3
parentd9d5819f99dd8f79db2262debf24099d842db820
feat(quickadapter): make HPO trial seed variation configurable (#119)

Add freqai.optuna_hyperopt.vary_model_seed_by_trial (default true) to make the
per-trial model-seed variation explicit.

- true (default) preserves the historical behavior: each HPO trial adds
  trial.number to the regressor model seed. false uses the same model seed for
  every trial and the final fit.
- Independent from freqai.optuna_hyperopt.seed (Optuna samplers + label-candle
  shuffling); wired through the canonical defaults, config template, startup
  logging, and README.
- Seed NGBoost's base DecisionTreeRegressor as well: NGBoost.random_state only
  seeds subsampling/validation split, not the cloned base learner, so the base
  tree needs its own random_state for reproducibility.

BREAKING CHANGE: the optuna_hyperopt boolean options (enabled, continuous,
warm_start, space_reduction, vary_model_seed_by_trial) are now validated at the
option layer and raise ValueError on non-boolean values instead of relying on
Python truthiness; a config passing a non-boolean (e.g. 1 or "false") for these
keys must use real booleans.
README.md
quickadapter/user_data/config-template.json
quickadapter/user_data/freqaimodels/QuickAdapterRegressorV3.py
quickadapter/user_data/strategies/Utils.py