Skip to content

feat(gds-psuu): composable objectives + migrate to optuna#116

Merged
rororowyourboat merged 1 commit intodevfrom
feat/psuu-objectives
Mar 5, 2026
Merged

feat(gds-psuu): composable objectives + migrate to optuna#116
rororowyourboat merged 1 commit intodevfrom
feat/psuu-objectives

Conversation

@rororowyourboat
Copy link
Collaborator

Summary

  • Add Objective ABC with SingleKPI and WeightedSum implementations — separates "what to optimize" from "how to optimize"
  • SweepResults.best_by_objective(objective) for multi-KPI ranking
  • Sweep accepts optional objective parameter (backwards-compatible)
  • Migrate BayesianOptimizer from unmaintained scikit-optimize to optuna (TPE sampler, ask/tell API)
  • Update [project.optional-dependencies] from scikit-optimize>=0.10 to optuna>=4.0
  • Export BayesianOptimizer from main package __init__.py

Test plan

  • 15 new tests: objective scoring, weighted sum validation, best_by_objective, sweep integration, Bayesian optimizer
  • All 62 passed, 5 skipped (4 Bayesian w/o optuna, 1 pandas)
  • 100% coverage on new objective.py
  • Backwards-compatible: existing Sweep/SweepResults usage unchanged
  • Ruff lint + format clean

Closes #114

Add Objective ABC with SingleKPI and WeightedSum implementations,
separating "what to optimize" from "how to optimize". SweepResults
gains best_by_objective() for multi-KPI ranking. Sweep accepts an
optional objective parameter.

Migrate BayesianOptimizer from unmaintained scikit-optimize to optuna
(TPE sampler, ask/tell API). Update optional dependency accordingly.

15 new tests (4 Bayesian skipped without optuna installed).

Closes #114
@rororowyourboat rororowyourboat merged commit 782b7bb into dev Mar 5, 2026
@rororowyourboat rororowyourboat deleted the feat/psuu-objectives branch March 5, 2026 09:52
@rororowyourboat rororowyourboat mentioned this pull request Mar 5, 2026
3 tasks
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.

feat(gds-psuu): composable objective functions

1 participant