Releases: SMTorg/smt
2.2.0
What's Changed
- Update NestedLHS with design_space by @Paul-Saves in #473. It completes the work done in 2.1 on mixed-integer multi-fidelity surrogates: MFK and MFKPLS.
- Implement categorical decreed variables by @Paul-Saves in #474. This allows to define value constraints that explicitly forbid two variables from having some values simultaneously. These constraints are taken into account during the mixed-integer kriging-based surrogates training. This feature is built on top of
ConfigSpace
which has to be installed.
Full Changelog: v2.1.0...v2.2.0
2.1.0
What's Changed
- Add Sparse GP by @hvalayer, @relf in #463
- Add MFK and MFKPLS compatibility with mixed variables by @RemyCharayron in #467
- Update pyDOE2 dependency to pyDOE3 by @relf in #471
- Fix for expired deprecation in numpy 1.25 by @relf in #469
- Bump actions/checkout from 3 to 4 by @dependabot in #462
- Bump pypa/cibuildwheel from 2.15.0 to 2.16.2 by @dependabot in #468
New Contributors
- @hvalayer made his first contribution in #463
- @RemyCharayron made his first contribution in #467
Full Changelog: v2.0.1...v2.1.0
2.0.1
- Update deprecated setup.cfg fields (@jbussemaker #453)
- Fix PLS with noisy categorical variables (@Paul-Saves #454)
- Fix mixed variables hierachical sampling (@Paul-Saves #456)
- Add required readthedocs configuration file (@relf #458)
- Automate wheels distribution on Pypi (@relf #460)
2.0.0
Major release of the Surrogate Modeling Toolbox with handling of hierarchical and mixed variables for kriging-based surrogates.
See SMT 2.0 article (preprint).
Special thanks to @Paul-Saves for his essential contributions and @jbussemaker for his work on the API and many thanks to all contributors.
- No API breaking change since 2.0b3
- Add decoding values method for design vectors (@jbussemaker #435 )
- Now numba is opt-in: user has to set
USE_NUMBA_JIT=1
once numba is installed (@Paul-Saves #443 ) - Speed up of EGO algorithm (@Paul-Saves #445 )
- Update tutorial notebooks (@NatOnera #436, #448 )
2.0b3
-
Rework of the categorical and hierarchical variables API for kriging-based surrogates (@jbussemaker #428 ) :
- Implementation of a new design space definition API in
smt.utils.design_space
XSpecs
andXType
have been completely replaced byDesignSpace
- Add numba speedup for kriging calculations (optional)
- Documentation update
- Implementation of a new design space definition API in
-
Fixes related to categorical variables handling : (@Paul-Saves #431 )
- Fix: kriging-based surrogates
categorical_kernel
option is now explicitly continuous relaxation - Fix: mixed-integer EGO implementation now works in folded space
- Fix: kriging-based surrogates
-
Code format with black is enforced in CI (#432 )
2.0b2
-
Hierarchical variables for kriging-based surrogate models:
- Add mixint cantilever beam and hierarchical neural network problems (@Paul-Saves #416)
- Add architectural kernel (
MixHrcKernelType.ARC_KERNEL
) (@Paul-Saves #417) - Update documentation (@Paul-Saves #421)
-
Add variable-powered exponential kernel for kriging-based surrogates (@yqliaohk #411)
-
Multi-Fidelity Kriging: Reset
eval_noise
option to original value after reinterpolation to allow subsequent noise evaluation (@robertwenink #419)
2.0b1
Breaking changes
- Kriging-based surrogates mixed integer existing support (continuous relaxation, gower distance) is reworked (@Paul-Saves #379)
- Change
predict_variance_derivatives(x)
for a singlex
topredict_variance_derivatives(x, kx)
(@Paul-Saves and Ines Cardoso #390) - Drop support for scikit-learn < 1.0.2 (related to PLS used in KPLS surrogates)
- Drop support for Python 3.7
Added:
- Kriging-based surrogates support for mixed integer variables (@Paul-Saves #379)
- Kriging-based surrogates support for hierarchical variables (@Paul-Saves #406, #400)
- Conditioned Gaussian Process sampling (@AlexThv #385): see tutorial
- Output derivatives for all correlation kernels, as it was only available for Gaussian kernel before (@Paul-Saves #389)
- Derivatives value and variance computation for all correlation kernels (@Paul-Saves #389)
- KPLS surrogates (@Paul-Saves #379):
- automatic PLS components number determination when setting
eval_n_comp
option - PLS dimension reduction is available for categorical variables using
cat_kernel_comps
option
- automatic PLS components number determination when setting
- Normalization for QP surrogate model (@Paul-Saves #396)
- Documentation and notebooks updates (@NatOnera #393, #407)
Fixed:
- Normalization for kriging based models using linear trend (@Paul-Saves #389)
- Compatibility with
numpy
1.24 (@Paul-Saves #392) - Bounds normalization when using Gower distance in kriging-based surrogate models (@Paul-Saves #394)
- EGO algorithm when discrete variables are used (@Paul-Saves #394)
- LHS to avoid generating the same doe when random state is set (#397)
1.3.0
- Breaking Changes: MGP is now compliant with the
SurrogateModel
APImgp.predict_values()
method outputs is now a 2d array (fix #375)mgp.predict_variances()
method now takes only one arg and returns only MGP variances (old version callpredict_variances(x, both=False)
)mgp.predict_variances_no_uq()
, specific to MGP, computes variances without hyperparameters uncertainty (second value returned by the old version callpredict_variances(x, both=True)
)
- Cleanup
install_requires
: removepackaging
, movenumpydoc
andmatplotlib
torequirements.txt
(#370) - Documentation updates:
- Add new example: Learning airfoil parameters using GENN surrogate model (#374 thanks @raul-rufato)
- Update MixedInteger Tutorial: add an example of mixed integer surrogate model usage for an hybrid composites problem (#357 thanks @raul-rufato)
- Minor fixes in notebooks (#377 thanks @NatOnera)
- Fix warnings in optimized ESE LHS (#350)
- Fix wing weight problem formula (#381)
- Use
warnings.warn
instead ofprint
in Kriging-based surrogates (#367 thanks @zhoutianxun)
1.2.0
- Add EGO optimization with GEKPLS model (#340, #346, thanks @Laurentww)
- Breaking change: Remove scikit-learn < 0.22 support for KPLS surrogates family
- Remove Python 3.6 from CI tests as it has reached its end-of-life date (#342).
- Fix MOE when test data are specified (#347)
- Fix MFK to make it work even with one fidelity (#339, #341)
- Fix Kriging based surrogates to allow constant function modeling (#338)
- Fix KPLS automatic determination of components number and update notebook (#335)
1.1.0
- Mixed integer surrogate enhancements (thanks @Paul-Saves)
- Add number of components estimation in KPLS surrogate models (#325)
- Add ordered variables management in mixed integer surrogates (#326, #327). Deprecation warning: INT type is deprecated and superseded by ORD type.
- Update version for the GOWER distance model. (#330)
- Implement generalization of the homoscedastic hypersphere kernel from Pelamatti et al. (#330)
- Refactor MixedInteger (#328, #330)
- Add
propagate_uncertainty
option in MFK method (#320 thanks @anfelopera) :- when True the variances of lower fidelity levels are taken into account.
- Add LHS expansion method (#303, #323 thanks @rconde1997)
- MOE: Fix computation of errors when choosing expert surrogates (#334)
- Breaking Changes:
- In EGO SMT,
UCB
criteria mistakenly named regarding the litterature is renamedLCB
! (#321) - In MixedInteger surrogate:
use_gower_distance=True
option replaced bycategorical_kernel=GOWER
- In EGO SMT,
- Documentation:
- Add collab links in Tutorial README (#322)
- Add notebook about MFK with noise handling (#320)
- Fix typos (#320, #321)