optimize.differential_evolution: possibility to pass parameters to the polish function
See original GitHub issueOther global minimization functions already support this option like shgo
with minimizer_kwargs
or dual_annealing
with local_search_options
for instance. However, differential_evolution
only support toggling on and off this minimization with the polish
parameter. It would be great to have the possibility to choose the method as well as any other parameter that the method supports.
Moreover, I propose that the same name for this parameter is used for all other algorithms of this type being the name minimizer_kwargs
the most clarifying in my opinion.
Issue Analytics
- State:
- Created 3 years ago
- Reactions:1
- Comments:8 (6 by maintainers)
Top Results From Across the Web
scipy.optimize.differential_evolution — SciPy v1.9.3 Manual
The algorithm is due to Storn and Price [1]. The objective function to be minimized. Must be in the form f(x, *args) ,...
Read more >scipy.optimize.differential_evolution
Finds the global minimum of a multivariate function. Differential Evolution is stochastic in nature (does not use gradient methods) to find the ...
Read more >How to pass/access variables used inside objective function in ...
I'm using DE to optimize a Neural Network problem. And i need to access variables inside the object function to create a plot....
Read more >Differential Evolution Global Optimization With Python | MKAI
Differential Evolution is a global optimization algorithm. It is a type of evolutionary algorithm and is related to other evolutionary ...
Read more >How To Use Python Scipy Differential Evolution
The module scipy.optimize has a method differential_evolution() that finds a multivariate function's global minimum. The syntax is given below.
Read more >
Top Related Medium Post
No results found
Top Related StackOverflow Question
No results found
Troubleshoot Live Code
Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free
Top Related Reddit Thread
No results found
Top Related Hackernoon Post
No results found
Top Related Tweet
No results found
Top Related Dev.to Post
No results found
Top Related Hashnode Post
No results found
After reading both sides, I have three remarks:
So I would either go for completely removing the polishing, or having a coherent interface with the other functions as suggested by @labay11.
There are a lot of good points here, but since this has been inactive, I thought I’d suggest something that may be a reasonable compromise and doesn’t require much decision-making: instead of deprecating
polish
or adding a new parameterminimize_kwargs
parameter, why don’t we allow the user to pass an optimizer callable (that satisfies theminimize
interface) into the existingpolish
keyword?Of course, this is so much more convenient to the user than for the user to just pass the output of
differential_evolution
into the local optimizer themselves. But then again, neither is theminimizer_kwargs
of the existing PR, and hopefully, this suggestion is less contentious since we can reuse the existingpolish
keyword, it’s 100% customizable, and it’s backward compatible, so we don’t have to do the work of a deprecation.