Skip to content

0.10.0

Compare
Choose a tag to compare
@Scienfitz Scienfitz released this 02 Aug 18:56
· 477 commits to main since this release
4282f1c

What's Changed

Breaking Changes

  • Providing an explicit batch_size is now mandatory when asking for recommendations
  • RecommenderProtocol.recommend now accepts an optional Objective
  • RecommenderProtocol.recommend now expects training data to be provided as a single
    dataframe in experimental representation instead of two separate dataframes in
    computational representation
  • Parameter.is_numeric has been replaced with Parameter.is_numerical
  • DiscreteParameter.transform_rep_exp2comp has been replaced with
    DiscreteParameter.transform
  • filter_attributes has been replaced with match_attributes

Added

  • Surrogate base class now exposes a to_botorch method
  • SubspaceDiscrete.to_searchspace and SubspaceContinuous.to_searchspace
    convenience constructor
  • Validators for Campaign attributes
  • _optional subpackage for managing optional dependencies
  • New acquisition functions for active learning: qNIPV (negative integrated posterior
    variance) and PSTD (posterior standard deviation)
  • Acquisition function: qKG (knowledge gradient)
  • Abstract ContinuousNonlinearConstraint class
  • Abstract CardinalityConstraint class and
    DiscreteCardinalityConstraint/ContinuousCardinalityConstraint subclasses
  • Uniform sampling mechanism for continuous spaces with cardinality constraints
  • register_hooks utility enabling user-defined augmentation of arbitrary callables
  • transform methods of SearchSpace, SubspaceDiscrete and SubspaceContinuous
    now take additional allow_missing and allow_extra keyword arguments
  • More details to the transfer learning user guide
  • Activated doctests
  • SubspaceDiscrete.from_parameter, SubspaceContinuous.from_parameter,
    SubspaceContinuous.from_product and SearchSpace.from_parameter
    convenience constructors
  • DiscreteParameter.to_subspace, ContinuousParameter.to_subspace and
    Parameter.to_searchspace convenience constructors
  • Utilities for permutation and dependency data augmentation
  • Validation and translation tests for kernels
  • BasicKernel and CompositeKernel base classes
  • Activated pre-commit.ci with auto-update
  • User guide for active learning
  • Polars expressions for DiscreteSumConstraint, DiscreteProductConstraint,
    DiscreteExcludeConstraint, DiscreteLinkedParametersConstraint and
    DiscreteNoLabelDuplicatesConstraint
  • Discrete search space Cartesian product can be created lazily via Polars
  • Examples demonstrating the register_hooks utility: basic registration mechanism,
    monitoring the probability of improvement, and automatic campaign stopping

Changed

  • Passing an Objective to Campaign is now optional
  • GaussianProcessSurrogate models are no longer wrapped when cast to BoTorch
  • Restrict upper versions of main dependencies, motivated by major numpy release
  • Sampling methods in qNIPV and BotorchRecommender are now specified via
    DiscreteSamplingMethod enum
  • Interval class now supports degenerate intervals containing only one element
  • add_fake_results now directly processes Target objects instead of a Campaign
  • path argument in plotting utility is now optional and defaults to Path(".")
  • UnusedObjectWarning by non-predictive recommenders is now ignored during simulations
  • The default kernel factory now avoids strong jumps by linearly interpolating between
    two fixed low and high dimensional prior regimes
  • The previous default kernel factory has been renamed to EDBOKernelFactory and now
    fully reflects the original logic
  • The default acquisition function has been changed from qEI to qLogEI for improved
    numerical stability

Removed

Fixed

  • sequential flag of SequentialGreedyRecommender is now set to True
  • Serialization bug related to class layout of SKLearnClusteringRecommender
  • MetaRecommenders no longer trigger warnings about non-empty objectives or
    measurements when calling a NonPredictiveRecommender
  • Bug introduced in 0.9.0 (PR #221, commit 3078f3), where arguments to to_gpytorch
    are not passed on to the GPyTorch kernels
  • Positive-valued kernel attributes are now correctly handled by validators
    and hypothesis strategies
  • As a temporary workaround to compensate for missing IndexKernel priors,
    fit_gpytorch_mll_torch is used instead of fit_gpytorch_mll when a TaskParameter
    is present, which acts as regularization via early stopping during model fitting

Deprecations

  • SequentialGreedyRecommender class replaced with BotorchRecommender
  • SubspaceContinuous.samples_random has been replaced with
    SubspaceContinuous.sample_uniform
  • SubspaceContinuous.samples_full_factorial has been replaced with
    SubspaceContinuous.sample_from_full_factorial
  • Passing a dataframe via the data argument to the transform methods of
    SearchSpace, SubspaceDiscrete and SubspaceContinuous is no longer possible.
    The dataframe must now be passed as positional argument.
  • The new allow_extra flag is automatically set to True in transform methods
    of search space classes when left unspecified

Expired Deprecations (from 0.7.*)

  • Interval.is_finite property
  • Specifying target configs without type information
  • Specifying parameters/constraints at the top level of a campaign configs
  • Passing numerical_measurements_must_be_within_tolerance to Campaign
  • batch_quantity argument
  • Passing allow_repeated_recommendations or allow_recommending_already_measured
    to MetaRecommender (or former Strategy)
  • *Strategy classes and baybe.strategies subpackage
  • Specifying MetaRecommender (or former Strategy) configs without type information

Merged Pull Requests

New Contributors

Full Changelog: 0.9.1...0.10.0