- 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_minimumwhere 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_minimumto 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_argsare moved fromutilstolearning. - BREAKING:
normalize_dimensionsis moved fromutilstospace. - BREAKING:
branin,hart3,hart6,poly2, andpeakshas been changed to noisy and noiselessModelSystems. - Implemented tests for ModelSystems.
gold_mapexist 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 theDimesions - LHS now allows for arbitrary seeding, or for random seeding, better supporting benchmarking. The algorithm still uses a fixed seed by default.
- The module
spaceusesnp.random.default_rngas a random number generator, instead of the deprecatednp.random.RandomState. A bridging strategy allows it to still acceptRandomStates, but it will tranform them todefault_rngfor 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
RealDimension, or aCategoricalDimensionwith informative priors will give different results in this release than in previous releases. - BREAKING: The mechanism for seeding pseudorandom generators in the
spacemodule 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
DataDependentNoiseandSumNoiseto avoid highly correlated noise of the underlying noise models. - Switched to local imports internally to avoid circular import errors.
NoiseModel._noise_distributionis now a method, to allow changes ofself._rngto affectself._noise_distributionautomatically.- 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_regretfunction for plotting the cumulative regret; The purpose of such plot is to access how much an optimizer is effective at picking good points.CheckpointSaverthat 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
versioneersupport, to reduce changes with new version of theskopt
- Separated
n_pointsfromn_jobsinBayesSearchCV. - Dimensions now support boolean np.arrays.
matplotlibis 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_iterationsproperty ofBayesSearchCVthat counts total iterations needed to explore all subspaces.- Add iteration event handler for
BayesSearchCV, useful for early stopping insideBayesSearchCVsearch loop. - added
utils.use_named_argsdecorator 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