• Stars
    star
    103
  • Rank 333,046 (Top 7 %)
  • Language
    Python
  • License
    MIT License
  • Created about 4 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Elo ratings for global black box derivative-free optimizers

humpday derivative-free optimizers (docs and Elo ratings) tests nlopt ax-platform py-bobyqa dlib hyperopt pySOT skopthebo nevergrad nevergrad (GitHub) optuna bayesopt platypus pymoo ultraopt License: MIT

Deriv-free optimizers from many packages in a common syntax, with evaluation

  1. There's a colab notebook that recommends a black-box derivative-free optimizer for your objective function.

  2. About fifty strategies drawn from various open source packages are assigned Elo ratings depending on dimension of the problem and number of function evaluations allowed.

Hello and welcome to HumpDay, 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, Py-Bobyaq, UltraOpt and maybe others by the time you read this. It also presents some of their functionality in a common calling syntax.

Cite or be cited

Pull requests at CITE.md are welcome. If your package is benchmarked here I'd like to get this bit right.

Install

See INSTALL.md

Short version:

pip install humpday
pip install humpday[full]

Recommendations

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)

Points race

If you have more time, 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)

See the colab notebook.

How it works

In the background, 50+ strategies are assigned Elo ratings by sister repo optimizer-elo-ratings. Oh I said that already. Never mind.

Contribute

By all means contribute more to optimizers.

Articles

More Repositories

1

timemachines

Predict time-series with one line of code.
Python
398
star
2

microprediction

If you can measure it, consider it predicted
Jupyter Notebook
331
star
3

precise

World beating online covariance and portfolio construction.
Python
150
star
4

timeseries-notebooks

Hello world univariate examples for a variety of time series packages.
Jupyter Notebook
56
star
5

winning

Inference of relative ability from winning probabilities
Jupyter Notebook
36
star
6

m6

M6-Forecasting competition
Jupyter Notebook
30
star
7

optimizer-elo-ratings

Assigns Elo Ratings to Python Global Optimizers
19
star
8

timeseries-elo-ratings

Elo ratings for time-series forecasting packages
Python
18
star
9

monteprediction_colab_examples

Monte Carlo Submission Examples
Jupyter Notebook
16
star
10

m6entry

Python
13
star
11

microactors-causality

Examples of causality maps for time series driven by GitHub actions
Jupyter Notebook
13
star
12

muid

Memborable Unique Identifier
Python
10
star
13

building_an_open_ai_network

MIT Press
9
star
14

momentum

Running mean, variance, skew, and kurtosis
Python
9
star
15

embarrassingly

robust optimization
Python
8
star
16

pandemic

A 2d contagion model with commuting modeled as regime switching Ornstein-Uhlenbeck walks on the plane
Python
8
star
17

tuneup

Comparison of global optimization algorithms, including scipy, optuna, hyperopt, platypus, facebook-ax, pysot and others.
Python
6
star
18

gptprobe

For unmanned missions into GPT returning structured data
Python
5
star
19

offline

Demonstrates one pattern for offline estimation
Python
4
star
20

firstdown

NFL first down strategy
Jupyter Notebook
4
star
21

microactors

Examples of scheduled jobs estimating copulas at www.microprediction.org
Python
4
star
22

home

home page of sorts
4
star
23

microconventions

Conventions used at MicroPrediction.Org
Python
3
star
24

midterms

3
star
25

timemachines-testing

Testing optimizers and time-series algorithms, and assigning them Elo ratings.
Python
3
star
26

timeseries-data

static benchmarking timeseries data
Jupyter Notebook
3
star
27

monteprediction

Monte Prediction Utilities
Python
3
star
28

schooled

Experiments in what NN's can learn, or not
Python
2
star
29

csvsdataset

Dataset from multiple CSV files
Python
2
star
30

diffracting

Diffracting probability
2
star
31

chattychattybangbang

Forcing ChatGPT to do its own QA, and other strategies.
Python
2
star
32

curiouskids

questions for kids
2
star
33

rediz

Supporting community nowcasts at www.microprediction.org
Python
2
star
34

barbell

Notes on the interpretation of a barbell bond portfolio
2
star
35

autotds

Automatically generates "Towards Data Science" quality articles
Python
2
star
36

awesome-python-benchmarks

Benchmarking for python analytic packages
2
star
37

successor

Predicts the next number in a sequence, or next k
Python
1
star
38

predictionserver

Development version of microprediction server (not working yet)
Python
1
star
39

marketstacker

Financial market data in pandas using marketstack API
1
star
40

chess

Blitz and bullet chess ratings
HTML
1
star
41

realdata

Simple real time series data
Python
1
star
42

diffraction

Diffracting probability
1
star
43

helicopter

Helicopter Julia Challenge
Python
1
star
44

automl-notebooks

Quick and dirty first pass analysis
Jupyter Notebook
1
star
45

echochamber

Using an echo state network to enter a contest at microprediction.org
Python
1
star
46

awesome-hype

Listing of repositories for independent benchmarking and debunking
1
star
47

getjson

Very limited mini-package for retrieving JSON data with backoff and failover
Python
1
star
48

correlationbounds

Tiny utility for correlation bounds by brute force
Jupyter Notebook
1
star