0.13.0
What's Changed
Added
extras
group for installing all dependencies required for optional features- Support for NumPy 2.0+
ParetoObjective
class for Pareto optimization of multiple targets and corresponding
qNoisyExpectedHypervolumeImprovement
/qLogNoisyExpectedHypervolumeImprovement
/
qLogNParEGO
acquisition functions- Composite surrogates now drop rows containing NaNs (separately for each target),
effectively enabling partial measurements SubstanceParameter
,CustomDiscreteParameter
andCategoricalParameter
now also
support restricting the search space viaactive_values
, whilevalues
continue to
identify allowed measurement inputsCampaign.posterior_stats
andSurrogate.posterior_stats
as convenience methods for
providing statistical measures about the target predictions of a given set of
candidatesacquisition_values
andjoint_acquisition_value
convenience methods to
Campaign
andBayesianRecommender
for computing acquisition valuesCampaign.get_acquisition_function
andBayesianRecommender.get_acquisition_function
convenience methods for retrieving the underlying acquisition functionAcquisitionFunction.evaluate
convenience method for computing acquisition values
from candidates in experimental representationqPSTD
acquisition functionBCUT2D
encoding forSubstanceParameter
SHAPInsight
now supports thewaterfall
plot type- Cardinality constraints sections to the user guide
ContinuousCardinalityConstraint
is now compatible withBotorchRecommender
- Attribute
max_n_subspaces
toBotorchRecommender
, allowing to control
optimization behavior in the presence of cardinality constraints Surrogate.replicate
method for making single-target surrogate models multi-target
compatibleCompositeSurrogate
class for composing multi-target surrogates from single-target
surrogatesis_multi_output
attribute toObjective
supports_multi_output
attribute/property toSurrogate
/AcquisitionFunction
n_outputs
property toObjective
- Attribute
relative_threshold
and methodget_absolute_thresholds
to
ContinuousCardinalityConstraint
for handling inactivity ranges - Utilities
inactive_parameter_combinations
andn_inactive_parameter_combinations
to bothContinuousCardinalityConstraint
andSubspaceContinuous
for iterating
over cardinality-constrained parameter sets - Utilities
activate_parameter
andis_cardinality_fulfilled
for enforcing and
validating cardinality constraints - Utility
is_inactive
for determining if parameters are inactive - A
MinimumCardinalityViolatedWarning
is triggered when minimum cardinality
constraints are violated - Stored benchmarking results now include the Python environment and version
Changed
- Targets are now allowed to contain NaN, deferring potential failure to attempted
recommendation instead of data ingestion - For label-like parameters,
SubspaceDiscrete
now only includes parameter values
that are inactive_values
- The default value for
sequential_continuous
inBotorchRecommender
has been
changed toTrue
SHAPInsight
now allows explanation input that has additional columns compared to
the background data (will be ignored)- Acquisition function indicator
is_mc
has been removed in favor of new indicators
supports_batching
andsupports_pending_experiments
fuzzy_row_match
now uses vectorized operations, resulting in a speedup of matching
measurements to the search space between 4x and 40x- Model scaling now uses the parameter bounds instead of the search space bounds
benchmarks
module now accepts a list of domains to be executed- Construction of BoTorch acquisition functions has been redesigned from ground up
ngboost
is now an optional dependencysetuptools-scm
is now an optional dependency, used for improved version inferencecreate_example_plots
,to_string
andindent
have been relocated within utils
Fixed
- Incorrect optimization direction with
PSTD
with a single minimization target - Provide version fallback in case scm fails to infer version during installation
Removed
fuzzy_row_match
will no longer warn about entries not matching to the search spacefuncy
dependencyscikit-learn-extra
dependency by integrating relevant code parts intobaybe
Expired Deprecations (from 0.9.*)
baybe.objective
namespaceacquisition_function_cls
constructor parameter forBayesianRecommender
VarUCB
andqVarUCB
acquisition functions
Merged Pull Requests
- Fix Substance Encodings by @Scienfitz in #474
- Add Python environment and version metadata to benchmark results by @fabianliebig in #476
- Serialize python env and version data by @fabianliebig in #478
- Refactor benchmark architecture by @AdrianSosic in #477
- Refactor ACQF indicators by @Scienfitz in #479
- XFail bugged test case by @Scienfitz in #481
- Fix SHAP Plot Tests by @Scienfitz in #486
- Rework validation for
measurements
andpending_experiments
by @Scienfitz in #456 - Negative
beta
values by @AdrianSosic in #488 - Minor SHAP improvements by @Scienfitz in #494
- Increase timeout for benchmark test to 1440 minutes (24 hours) by @fabianliebig in #498
- Add logging to indicate currently running benchmark and its runtime by @fabianliebig in #499
- Vectorize
fuzzy_row_match
by @Scienfitz in #489 - Disable pre-commit.ci autofixing by @AdrianSosic in #501
- Pareto optimization by @AdrianSosic in #475
- Botorch with cardinality constraint via sampling by @Waschenbacher in #301
- Fix Pareto example plot export by @AdrianSosic in #505
- Fix serialization errors on 3.12 by @AdrianSosic in #506
- User guide for cardinality constraints by @AdrianSosic in #496
- Generalize
active_values
by @Scienfitz in #495 - Pipeline benchmark parallelization by @fabianliebig in #502
- Xfail bugged SHAP plot tests by @Scienfitz in #510
- Fix converter typing by @AdrianSosic in #511
- Acquisition function builder by @AdrianSosic in #490
- Add
Campaign.posterior_stats
by @Scienfitz in #504 - Provide version fallback in case scm fails to infer version during installation by @dasmy in #524
- Fix lockfile creation for uv>=0.6.0 by @AdrianSosic in #527
- Drop funcy dependency by @AdrianSosic in #528
- Add qLogNParEGO by @Scienfitz in #532
- More hypervolume acquisition functions by @AdrianSosic in #507
- Make
ngboost
optional by @AdrianSosic in #529 - Posterior Stats: Catch No Measurements Case by @Scienfitz in #536
- Make
scikit-learn-extra
optional by @AdrianSosic in #530 - Make
setuptools-scm
optional by @AdrianSosic in #526 - Enable Pareto and MATCH by @Scienfitz in #537
- Acquisition utility method by @AdrianSosic in #509
- Remove xfail for fixed SHAP case by @Scienfitz in #540
- Expire 0.9.* deprecations by @AdrianSosic in #497
- Enable Partial Measurements by @Scienfitz in #514
- Integrate KMedoids by @Scienfitz in #538
- Bump dev tools versions by @AdrianSosic in #503
- Release 0.13.0 by @AdrianSosic in #541
New Contributors
Full Changelog: 0.12.2...0.13.0