- Fixed a bug where sum_equals constraints would break if used with dimensions other than an increasing list from 0. E.g. constraining dimensions [0, 1, 2] would work, but constraining [1, 2, 3] would not.
- Added a plotting function that supports the Brownie Bee user interface (see browniebee.io).
- Made small improvements to the plot_objective_1d function, and added it to init.py for ProcessOptimizer.
- Added documentation for multiobjective optimization
- Documentation about the features in control parameters and sampling control parameters.
- ModelSystems moved to creator systems, so they are only created when you ask for them. You now need to use
ProcessOptimizer.model_systems.get_model_system(model_system_name)
to create them. This has two advantages: If you change a model system, it doesn't affect a new instance of it. And ProcessOptimizer should import faster, since fewer objects are created i memory. - Radius changed in certain Bokeh plots
- Default Pareto plot has more points on Pareto-front (40 -> 100)
- Setting noise-size in zero-noise models will now raise an error
- Multible imports of a model system will now provide separate instances
- Updated package requirements for Brownie Bee user interface.
- Examples reworked.
- opt.estimate() implemented - Works in non-transformed space and on all objectives.
- Fix that categorical dimensions with more than two levels induces error when used together with SumEqual constraint.
- Fix that Bokeh has changed naming convention related to sizes of circles in their plots from "size" to "radius".
- Fix dependency on deprecated Matrix from scipy in favour of a numpy solution
- Ensure prober warning/Errors when users try to combine constraints with operations that doesn't support constraints.
- Fix install bug that precluded installation of 0.9.2
- Update ipynb file showing example of color_pH modelsystem. (Very minor)
- Fixed a bug in
expected_minimum
where SumEquals constraint values were not rescaled correctly during normalization.
- Added colorpH as ModelSystem
- Exposed Integer, Real, Categorical and ModelSystem as direct imports of ProcessOptimizer.
- Changed the result object to store information about constraints (when present).
- Updated
expected_minimum
to make sure that the returned result location respects SumEquals constraints if these were used during the optimization.
- Fix install issue in 0.8.2. Th installed package could not be imported.
- BREAKING:
cook_estimator
,has_gradients
, anduse_named_args
are moved fromutils
tolearning
. - BREAKING:
normalize_dimensions
is moved fromutils
tospace
. - BREAKING:
branin
,hart3
,hart6
,poly2
, andpeaks
has been changed to noisy and noiselessModelSystem
s. - Implemented tests for ModelSystems.
gold_map
exist asModelSystem
.- Sampling consolidated. There is now only one sampling function per
Dimension
. Different sampling types (at the moment, random value sampling and Latin Hypercube Sampling (LHS)) are handled throughSpace
, referencing the sampling functions of theDimesion
s - LHS now allows for arbitrary seeding, or for random seeding, better supporting benchmarking. The algorithm still uses a fixed seed by default.
- The module
space
usesnp.random.default_rng
as a random number generator, instead of the deprecatednp.random.RandomState
. A bridging strategy allows it to still acceptRandomState
s, but it will tranform them todefault_rng
for internal use. The rest of the codebase still usesRandomState
. - BREAKING: LHS now respects priors. This means that performing LHS on a space with
a log-normal
Real
Dimension
, or aCategorical
Dimension
with informative priors will give different results in this release than in previous releases. - BREAKING: The mechanism for seeding pseudorandom generators in the
space
module have changed, meaning that, while the results are reproducible within a release, they will not be the same as in old releases. - Bokeh is now (again) a required installation.
- Fixes to
DataDependentNoise
andSumNoise
to avoid highly correlated noise of the underlying noise models. - Switched to local imports internally to avoid circular import errors.
NoiseModel._noise_distribution
is now a method, to allow changes ofself._rng
to affectself._noise_distribution
automatically.- Removed max_features='auto' to avoid using hardcoded variables to external functions
- Added additonal model systems to the list of benchmarks and made their structure more consistent.
- Added seeding to the noise models used for benchmarking to ensure reproducible results when benchmarking.
- Allow addition or removal of modelled noise to the optimizer object. This is to allow user to predict the full outcome space of a given new exp.
- Fix a small number of deprecationwarnings.
- Default acquisition function changed to expected improvement (EI)
- Updated list of contributors
- Minor addition of guidance in plot_objectives()
- Implemented a major new constraint type called SumEquals. This constraint is designed to be used for mixture experiments where a (sub)set of factors must sum to a specific number.
- Add a module to add noise to model systems
- QoL opt.space.names added as property
- Changed default behavior of plot_objective to show uncertainty in 1D plots
- ParetoFront did not show full recipe for model points
- Replaced friedman_mse with squared_error
- Changed look of uncertainty-plots in plot_objective
- Added plot to only show 1d plots
- Align code in GPR module to reflect sklearn. While still supporting SKlearn 0.24.2, we have some parallel code between our local GPR and the original from sklearn.
- Model systems should now be imported as intended.
- Add Bokeh version of Pareto plot
- Make a bleeding edge installable and a stable
- Add Bokeh to list of requiered packages
- Change the call of gaussian filter for a helper illustration function
- Model systems added to help benchmark performance or teach
- Remove call of plot_width and plot_height in bokeh
- Allow user defined bounds on noise level of WhiteKernel
- Added the option to display uncertainty in 2d plots in plot_objective
- Initial efforts to streamline the input-structure of plot options
- Additional options for plots
- Dependence modul now consistenty returns arrays instead of lists
- House-keeping on Github (contribution guidelines etc)
- Bokeh_plot is repaired after we started returning the std to plots
- LHS is rewritten to ensure consistent returns in between real and integer dimensions (integer types are ensure to return values "close" to those of a corresponding real dimension)
- New plot-type to envision model coverage
- Kriging Believer now supports multiobjective opt
- Examples pruned to better reflect the purpose of ProcessOptimizer as a tool for optimizing real world physical/chemical processes
- Expected_minimum can now return both maximum and minimum and can return the expected std in the points. Works for both numerical and categorical dimensions
- QoL improvements with easy impoart of most used features through __init__ .py
- Add possibility to show ~95% credibility_intervals in plot_objective
- More linting
- Supports Scikit-Learn 1.0.0
- plot_pareto works with partially categorical spaces
- Consolidate tests
- Kriging Believer added for batch-mode optimization
- Added Interactive Pareto plotting
- LHS fixed to ensure randomization of dimensions
- More linting
- Added plot_expected_minimum_convergence
- Numerous format changes to satisfy Flake8
- Fixed deprecation warning from Numpy
- Merge keywords for batch-optimization
- Set LHS=True as default
- Extensive changes in test-suite
- expected_minimum_sampling refactored
- Fix URL to present images on pypi
- Fixed Bokeh-plot to optional dependency
- Dependencies set (Bokeh optional, pyYAML added)
- Add plot_expected_minimum_convergence
- Recode expected_minimum_random_sampling and move to utils.py
- Update Readme to add illustrations on pypi
- Improve documentation in README.md
- Reset normalize_y to True and update requirements.txt
- Automatic testing when commiting to develop is implemented
- Slight adjustment to documentation
- Unneccesary files pruned
- Visual change to changelog
- test_deadline_stopper fixed as it was giving unreproducible results
- Fixed Steinerberger error
- Two additional examples added
- Tests are primarily from numpy instead of sklearn
- Changed plot_objective to use same color scale for each individual dependence plot and added colorbar
- Added plot_objectives, which plots all individual objective functions for multiobjective optimization
- Added a title parameter to plot_objective
- More informative ReadMe.md started
- Example on visualize_results.ipynb corrected to avoid warnings
- DEAP added as dependency for Pareto optimization
- normalize_y temporarely set to False until real fix from sklearn
- Handled a case in which feeding multible datapoints to the model would fail.
- Added functionality to create_result to create a list of results in case of multiobjective optimization
- Added a ValueError to warn users against using GP in entirely categorical spaces
- README changed to reflect move of repo to NN-research
- Steinerberger sampling added for improves spacefilling and explorative mode
- Multiobjective optimization added by NSGA and Pareto front
- Unused folders trimmed
- Added example notebooks on new functionality
- Removed check for numpy version in constraints.py
- Updated example/constraints.ipynb
-
Remove dependency on scipy>=0.14.0 *
-
Remove dependency on scikit-learn==0.21.0 *^
-
Remove dependency on bokeh==1.4.0 *
-
Remove dependency on tornado==5.1.1 *
-
*from setup.py
-
^from requirements.txt
-
Change gpr (as in skopt #943) to reflect changes in sklearn gpr-module (relates to normalilzation)
-
Change searchCV to reflect skopt #939 and #904 (relates to np.mask and imports)
-
Changes in tests (skopt#939 and #808). Extensive changes in tests!
-
Change in Bokeh_plot.py to fix bug when Bokeh>=2.2.0
-
TODO: look more into implemented normalizations in skopt.
- Version number increased due to reupload to pypi.
- Locked SKlearn to version 0.21.0 to avoid install errors.
- Changed bokeh version to 1.4.0
- ProcessOptimizer.__version__ shows correct version.
- Removed _version.py as we dont use versioneer anymore.
- Version needs to be changed manually in __init__ .py from now on.
- Wrong upload. Please don't use this version
- Latin hypercube sampling
- Progress is now correctly showed in bokeh.
- Lenght scale bounds and length scales were not transformed properly.
- optimizer.update_next() added
- Added option to change length scale bounds
- Added optimizer.get_result()
- Added exploration example notebook
- Added length scale bounds example notebook
- Draw upper confidence limit in bokeh.
- Colorbar in bokeh
- Same color mapping button in bokeh
Merged darnr's scikit-optimize fork into ProcessOptimizer. Here is their changelog:
plot_regret
function for plotting the cumulative regret; The purpose of such plot is to access how much an optimizer is effective at picking good points.CheckpointSaver
that can be used to save a checkpoint after each iteration with skopt.dumpSpace.from_yaml()
to allow for external file to define Space parameters
- Fixed numpy broadcasting issues in gaussian_ei, gaussian_pi
- Fixed build with newest scikit-learn
- Use native python types inside BayesSearchCV
- Include fit_params in BayesSearchCV refit
- Added
versioneer
support, to reduce changes with new version of theskopt
- Separated
n_points
fromn_jobs
inBayesSearchCV
. - Dimensions now support boolean np.arrays.
matplotlib
is now an optional requirement (install withpip install 'scikit-optimize[plots]'
)
High five!
- Single element dimension definition, which can be used to fix the value of a dimension during optimization.
total_iterations
property ofBayesSearchCV
that counts total iterations needed to explore all subspaces.- Add iteration event handler for
BayesSearchCV
, useful for early stopping insideBayesSearchCV
search loop. - added
utils.use_named_args
decorator to help with unpacking named dimensions when calling an objective function.
- Removed redundant estimator fitting inside
BayesSearchCV
. - Fixed the log10 transform for Real dimensions that would lead to values being out of bounds.
- Added text describing progress in bokeh
- Changed plot size in bokeh
- ProcessOptimizer now requires tornado 5.1.1
- Added constrained parameters
- Interactive bokeh GUI for plotting the objective function
- Support for using categorical values when plotting objective.
- Support for not using partial dependence when plotting objective.
- Support for choosing the values of other parameters when calculating dependence plots
- Support for choosing other minimum search algorithms for the red lines and dots in objective plots