Skip to main content

Taking the pain out of choosing a Python global optimizer

Project description

humpday tests License: MIT

A package that helps you choose a Python global optimizer package, and strategy therein, from Ax-Platform, bayesian-optimization, DLib, HyperOpt, NeverGrad, Optuna, Platypus, PyMoo, PySOT, Scipy classic and shgo, Skopt, nlopt, and UltraOpt.

  • 50+ strategies are assigned Elo ratings by sister repo optimizer-elo-ratings. All are presented in a common calling syntax. By all means contribute more to optimizers.

  • Pass the dimensions of the problem, function evaluation budget and time budget to receive suggestions that are independent of your problem set,

      from pprint import pprint 
      from humpday import suggest
      pprint(suggest(n_dim=5, n_trials=130,n_seconds=5*60))
    

where n_seconds is the total computation budget for the optimizer (not the objective function) over all 130 function evaluations.

  • Or simply pass your objective function, and it will time it and do something sensible:

     from humpday import recommend
    
     def my_objective(u):
         time.sleep(0.01)
         return u[0]*math.sin(u[1])
    
     recommendations = recommend(my_objective, n_dim=21, n_trials=130)
    
  • If you are feeling lucky, the meta minimizer which will choose an optimizer based only on dimension and number of function evaluations, then run it:

      from humpday import minimize
      best_val, best_x = minimize(objective, n_dim=13, n_trials=130 )
    

    Here and elsewhere, objective is intended to be minimized on the hypercube [0,1]^n_dim.

  • Better yet, call points_race on a list of your own objective functions:

      from humpday import points_race
      points_race(objectives=[my_objective]*2,n_dim=5, n_trials=100)
    

    Here is a notebook you can open in colab and run, illustrating the points race.

Install

pip install humpday

Bleeding edge:

pip install git+https://github.com/microprediction/humpday

File an issue if you have problems. If you get a CMake error, try:

pip install cmake
pip install humpday 

Optional packages

Install directly if you want them to be included:

pip install cmake
pip install ultraopt
pip install hyperopt

Articles

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

humpday-0.2.3.tar.gz (32.6 kB view hashes)

Uploaded Source

Built Distribution

humpday-0.2.3-py3-none-any.whl (45.8 kB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page