optimagic-dev / optimagic

optimagic is a Python package for numerical optimization. It is a unified interface to optimizers from SciPy, NlOpt and other packages. optimagic's minimize function works just like SciPy's, so you don't have to adjust your code. You simply get more optimizers for free. On top you get diagnostic tools, parallel numerical derivatives and more.
https://optimagic.readthedocs.io/
MIT License
270 stars 30 forks source link

fides does not return information beyond (Boolean) success flag #405

Closed hmgaudecker closed 1 year ago

hmgaudecker commented 2 years ago

Bug description

Running estimate_mlwith fides returns failure with message:

Maximize with 95 free parameters terminated unsuccessfully after 2802 iterations.

The value of criterion improved from -1184865.5053305852 to -1029883.7752618275.

Independent of the convergence criteria used by fides, the strength of convergence can be assessed by the following criteria:

                             one_step     five_steps 
relative_criterion_change  1.066e-10**   8.185e-08*  
relative_params_change     6.457e-08*    1.441e-07*  
absolute_criterion_change  0.0001098       0.08429   
absolute_params_change     2.969e-08*    5.068e-08*  

(***: change <= 1e-10, **: change <= 1e-8, *: change <= 1e-5. Change refers to a change between accepted steps. The first column only considers the last step. The second column considers the last five steps.)

There is no information on the failure beyond this report by estimagic and the Boolean flag.

Expected behavior

User should be able to retrieve more information from fides.

System

estimagic                 0.4.0           pyhd8ed1ab_0    conda-forge
fides                     0.7.4
python                    3.9.13          h2660328_0_cpython    conda-forge
janosg commented 1 year ago

This was done a while ago via #412