Sklearn-genetic-opt

Latest version: v0.10.1

Safety actively analyzes 638452 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 3

0.6.1

This is a minor release that fixes a couple of bugs and adds some minor options.

Features:

* Added the parameter `generations` to `DeltaThreshold`. Now it compares the maximum and minimum values of a metric from the last generations, instead of just the current and previous ones. The default value is 2, so the behavior remains the same as in previous versions.

Bug Fixes:

* When a param_grid of length 1 is provided, a user warning is raised instead of an error. Internally it will swap the crossover operation to use the DEAP's `tools.cxSimulatedBinaryBounded`.
* When using `Continuous` class with boundaries `lower` and `upper`, a uniform distribution with limits `[lower, lower + upper]` was sampled, now, it's properly sampled using a `[lower, upper]` limit.

0.6.0

This is a big release with several new features and enhancements! 🎊

Features:

* Added the `ProgressBar` callback, it uses tqdm progress bar to shows how many generations are left in the training progress.
* Added the `TensorBoard` callback to log the generation metrics, watch in real-time while the models are trained, and compare different runs in your TensorBoard instance.
* Added the `TimerStopping` callback to stop the iterations after a total (threshold) fitting time has been elapsed.
* Added new parallel coordinates plot using `plot_parallel_coordinates` by Raul9595
* Now if one or more callbacks decides to stop the algorithm, it will print its class name to know which callbacks were responsible of the stopping.
* Added support for extra methods coming from scikit-learn's BaseSearchCV, like `cv_results_`,
`best_index_` and `refit_time_` among others.
* Added methods `on_start` and `on_end` to `BaseCallback`. Now the algorithms check for the callbacks like this:

- **on_start**: When the evolutionary algorithm is called from the GASearchCV.fit method.

- **on_step:** When the evolutionary algorithm finishes a generation (no change here).

- **on_end:** At the end of the last generation.

Bug Fixes:

* A missing statement was making that the callbacks start to get evaluated from generation 1, ignoring generation 0. Now this is properly handled and callbacks work from generation 0.

API Changes:

* The modules `sklearn_genetic.plots` and `sklearn_genetic.mlflow.MLflowConfig` now requires an explicit installation of seaborn and mlflow, now those are optionally installed using ``pip install sklearn-genetic-opt[all].``
* The GASearchCV.logbook property now has extra information that comes from the scikit-learn cross_validate function.
* An optional extra parameter was added to GASearchCV, named `return_train_score`: bool, default=False. As in scikit-learn, it controls if the `cv_results_` should have the training scores.

Docs:

* Edited all demos to be in the jupyter notebook format.
* Added embedded jupyter notebooks examples in read the docs page.
* The modules of the package now have a summary of their classes/functions in the docs.
* Updated the callbacks and custom callbacks tutorials to add a new TensorBoard callback and the new methods on the base callback.

Internal:

* Now the HallofFame (hof) uses the `self.best_params_` for the position 0, to be consistent with the
scikit-learn API and parameters like `self.best_index_`
* MLflow now has unit tests by Turtle24

Thanks to new contributors for helping in this project! Raul9595 Turtle24

0.5.0

Features:

* Build-in integration with MLflow using the class `sklearn_genetic.mlflow.MLflowConfig` and the new parameter `log_config` from the class `sklearn_genetic.GASearchCV`

* Implemented the callback `sklearn_genetic.callbacks.LogbookSaver` which saves the estimator.logbook object with all the fitted hyperparameters and their cross-validation score

* Added the parameter `estimator` to all the functions on the module `sklearn_genetic.callbacks`

Docs:

* Added user guide "Integrating with MLflow"
* Update the tutorial "Custom Callbacks" for new API inheritance behavior

Internal:


* Added a base class `sklearn_genetic.callbacks.base.BaseCallback` from which all Callbacks must inherit from
* Now coverage report doesn't take into account the lines with pragma: no cover and noqa

0.4.1

Docs:

* Added user guide on "Understanding the evaluation process"
* Several guides on contributing, code of conduct
* Added important links
* Docs requirement are now independent of package requirements

Internal:

* Changed test ci from travis to Github actions

0.4.0

Features:

* Implemented callbacks module to stop the optimization process based in the current iteration metrics, currently implemented:
`sklearn_genetic.callbacks.ThresholdStopping` , `sklearn_genetic.callbacks.ConsecutiveStopping` and `sklearn_genetic.callbacks.DeltaThreshold`.
* The algorithms 'eaSimple', 'eaMuPlusLambda', 'eaMuCommaLambda' are now implemented in the module `sklearn_genetic.algorithms`
for more control over their options, rather that taking the `deap.algorithms module`.
* Implemented the `sklearn_genetic.plots` module and added the function `sklearn_genetic.plots.plot_search_space`,
this function plots a mixed counter, scatter and histogram plots over all the fitted hyperparameters and their cross-validation score.
* Documentation based in rst with Sphinx to host in read the docs. It includes public classes and functions documentation as well
as several tutorials on how to use the package, link: https://sklearn-genetic-opt.readthedocs.io/
* Added `best_params_` and `best_estimator_` properties after fitting GASearchCV.
* Added optional parameters `refit`, `pre_dispatch` and `error_score`.

API Changes:

* Removed support for python 3.6, changed the libraries supported versions to be the same as scikit-learn current version.
* Several internal changes on the documentation and variables naming style to be compatible with Sphinx.
* Removed the parameters `continuous_parameters`, `categorical_parameters` and `integer_parameters` in GASearchCV, replacing them with `param_grid`.

0.3.0

Features:
* Added the space module to control better the data types and ranges of each hyperparameter, their distribution to sample random values from, and merge all data types in one Space class that can work with the new param_grid parameter
* Changed the continuous_parameters, categorical_parameters and integer_parameters for the param_grid, the first ones still work but will be removed in a next version
* Added the option to use the eaMuCommaLambda algorithm from deap
* The mu and lambda_ parameters of the internal eaMuPlusLambda and eaMuCommaLambda now are in terms of the initial population size and not the number of generations

Page 2 of 3

© 2024 Safety CLI Cybersecurity Inc. All Rights Reserved.