Some notes on new features in various releases
What’s new in 0.6.1¶
Added the parameter generations to the
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.
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
Continuousclass with boundaries lower and upper, a uniform distribution with limits [lower, lower + upper] was sampled, now, it’s properly sampled using a [lower, upper] limits.
What’s new in 0.6.0¶
ProgressBarcallback, it uses tqdm progress bar to shows how many generations are left in the training progress.
TensorBoardcallback to log the generation metrics, watch in real time while the models are trained and compare different runs in your TensorBoard instance.
TimerStoppingcallback to stop the iterations after a total (threshold) fitting time has been elapsed.
Added new parallel coordinates plot in
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.
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.
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.
Edited all demos to be in the jupyter notebook format.
Added embedded jupyter notebooks examples.
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 new TensorBoard callback and the new methods on the base callback.
Now the hof uses the self.best_params_ for the position 0, to be consistent with the scikit-learn API and parameters like self.best_index_
What’s new in 0.5.0¶
Implemented the callback
LogbookSaverwhich 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
Added user guide “Integrating with MLflow”
Update the tutorial “Custom Callbacks” for new API inheritance behavior
What’s new in 0.4.1¶
Added user guide on “Understanding the evaluation process”
Several guides on contributing, code of conduct
Added important links
Docs requirements are now independent of package requirements
Changed test ci from travis to Github actions
What’s new in 0.4¶
The algorithms ‘eaSimple’, ‘eaMuPlusLambda’, ‘eaMuCommaLambda’ are now implemented in the module
algorithmsfor more control over their options, rather that taking the deap.algorithms module
plotsmodule and added the function
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
Added best_params_ and best_estimator_ properties after fitting GASearchCV
Added optional parameters refit, pre_dispatch and error_score
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 replacing them with param_grid
What’s new in 0.3¶
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
What’s new in 0.2¶
Enabled deap’s eaMuPlusLambda algorithm for the optimization process, now is the default routine
Added a logbook and history properties to the fitted GASearchCV to make post-fit analysis
Elitism=Falsenow implements a roulette selection instead of ignoring the parameter
Added the parameter keep_top_k to control the number of solutions if the hall of fame (hof)
Refactored the optimization algorithm to use DEAP package instead of a custom implementation, this causes the removal of several methods, properties and variables inside the GASearchCV class
The parameter encoding_length has been removed, it’s no longer required to the GASearchCV class
Renamed the property of the fitted estimator from best_params_ to best_params
The verbosity now prints the deap log of the fitness function, it’s standard deviation, max and min values from each generation
The variable GASearchCV._best_solutions was removed and it’s meant to be replaced with GASearchCV.logbook and GASearchCV.history
Changed default parameters crossover_probability from 1 to 0.8 and generations from 50 to 40