Skip to content

0.11.0

Compare
Choose a tag to compare
@Scienfitz Scienfitz released this 09 Sep 16:58
· 677 commits to main since this release
98a9383

What's Changed

Breaking Changes

  • The public methods of Surrogate models now operate on dataframes in experimental
    representation instead of tensors in computational representation
  • Surrogate.posterior models now returns a Posterior object
  • param_bounds_comp of SearchSpace, SubspaceDiscrete and SubspaceContinuous has
    been replaced with comp_rep_bounds, which returns a dataframe

Added

  • py.typed file to enable the use of type checkers on the user side
  • IndependentGaussianSurrogate base class for surrogate models providing independent
    Gaussian posteriors for all candidates (cannot be used for batch prediction)
  • comp_rep_columns property for Parameter, SearchSpace, SubspaceDiscrete
    and SubspaceContinuous classes
  • New mechanisms for surrogate input/output scaling configurable per class
  • SurrogateProtocol as an interface for user-defined surrogate architectures
  • Support for binary targets via BinaryTarget class
  • Support for bandit optimization via BetaBernoulliMultiArmedBanditSurrogate class
  • Bandit optimization example
  • qThompsonSampling acquisition function
  • BetaPrior class
  • recommend now accepts the pending_experiments argument, informing the algorithm
    about points that were already selected for evaluation
  • Pure recommenders now have the allow_recommending_pending_experiments flag,
    controlling whether pending experiments are excluded from candidates in purely
    discrete search spaces
  • get_surrogate and posterior methods to Campaign
  • tenacity test dependency
  • Multi-version documentation

Changed

  • The transition from experimental to computational representation no longer happens
    in the recommender but in the surrogate
  • Fallback models created by catch_constant_targets are stored outside the surrogate
  • to_tensor now also handles numpy arrays
  • MIN mode of NumericalTarget is now implemented via the acquisition function
    instead of negating the computational representation
  • Search spaces now store their parameters in alphabetical order by name
  • Improvement-based acquisition functions now consider the maximum posterior mean
    instead of the maximum noisy measurement as reference value
  • Iteration tests now attempt up to 5 repeated executions if they fail due to numerical
    reasons

Fixed

  • CategoricalParameter and TaskParameter no longer incorrectly coerce a single
    string input to categories/tasks
  • farthest_point_sampling no longer depends on the provided point order
  • Batch predictions for RandomForestSurrogate
  • Surrogates providing only marginal posterior information can no longer be used for
    batch recommendation
  • SearchSpace.from_dataframe now creates a proper empty discrete subspace without
    index when called with continuous parameters only
  • Metadata updates are now only triggered when a discrete subspace is present
  • Unintended reordering of discrete search space parts for recommendations obtained
    with BotorchRecommender

Removed

  • register_custom_architecture decorator
  • Scalar and DefaultScaler classes

Deprecations

  • The role of register_custom_architecture has been taken over by
    baybe.surrogates.base.SurrogateProtocol
  • BayesianRecommender.surrogate_model has been replaced with get_surrogate

Merged Pull Requests

New Contributors

Full Changelog: 0.10.0...0.11.0