Skip to main content

High-Dimentional Bayesian Benchmark (HDBO-B)

Project description

HDBO-B: Benchmark for High Dimensional Bayesian Optimization

license pypi Code style: black python

HDBO-B, a generalized and unified benchmark for High Dimensional Bayesian Optimization, is including testing functions, example algorithms and more examples.

:gear: Installation

We recommend using Miniconda to isolate Python environments and their packages, this protects you from potential package version conflicts.

To install HDBO-B package, choose one below:

  • git clone https://github.com/yiyuiii/HDBO-B && cd HDBO-B && pip install -e . (You may get example codes ONLY by this way.)
  • pip install hdbo-b

Some realistic tasks and methods may require extra packages, please check requirements.txt and instructions in HDBOBenchmark/funcs/realistic/().py.

:rocket: Quick Start

Uncomment lines in test.py, and run python test.py.

User may also check codes in folder ./example.

:wrench: Details

Test Functions

To import hand-designed 30 test functions:

from HDBOBenchmark import TestFuncs as func_list

We have designed a stricter framework for functions and algorithms, This brings a lot of convenience to scaling, while there are a bit more difficulties in getting started. Check them out in

  • ./HDBOBenchmark/base/FunctionBase.py
  • ./HDBOBenchmark/AdditiveFunction.py
  • ./example/wrapper/hebo_wrapper.py

Realistic Functions

Available realistic functions including:

(Additional installation may be required to run these library, please check related instructions in our codes.)

  • MIPLIB, the real-world pure and mixed integer programs.

MIPLIB 2017: Data-Driven Compilation of the 6th Mixed-Integer Programming Library. Mathematical Programming Computation, 2021.

from HDBOBenchmark import MPSModel

func = MPSModel(mps_path='revised-submissions/miplib2010_publically_available/instances/markshare_4_0.mps.gz',
                solu_path='miplib2017-v26.solu')
  • LassoBench, a library for high-dimensional hyperparameter optimization benchmarks based on Weighted Lasso regression.

Šehić Kenan, Gramfort Alexandre, Salmon Joseph and Nardi Luigi, "LassoBench: A High-Dimensional Hyperparameter Optimization Benchmark Suite for Lasso", Proceedings of the 1st International Conference on Automated Machine Learning, 2022.

from HDBOBenchmark import LassoBenchmark

func = LassoBenchmark(benchname='synt_simple')
  • py-pde, a Python package for solving partial differential equations (PDEs). We implemented the Brusselator with spatial coupling, a realistic calculation problem according to the official example and one existing setting. For BO, we additionally set the objective as minium the maximum average density of u,v in the grid at the last time t, as in this case the objective is one value.

https://py-pde.readthedocs.io/en/latest/examples_gallery/pde_brusselator_expression.html https://github.com/bhouri0412/rpn_bo

from HDBOBenchmark.funcs.realistic.pde import Brusselator

func = Brusselator()
  • Topology, The dataset of topology optimization process, used in T-LBO.

Neural networks for topology optimization, arXiv preprint arXiv:1709.09578, 2017. Grosnit, Antoine, et al. "High-Dimensional Bayesian Optimisation with Variational Autoencoders and Deep Metric Learning." arXiv preprint arXiv:2106.03609 (2021).

from HDBOBenchmark import Topology

func = Topology()

Bayesian Optimization Algorithms

Algorithms can be found in ./examples/algorithms (more original) and ./examples/wrapper (directly imported by ./examples/optimize.py), including

  • GP(Gaussian Process) + UCB(Upper Confidence Bound) Implementation with BOTorch

M. Balandat, B. Karrer, D. R. Jiang, S. Daulton, B. Letham, A. G. Wilson, and E. Bakshy. BoTorch: A Framework for Efficient Monte-Carlo Bayesian Optimization. Advances in Neural Information Processing Systems 33, 2020.

  • GP/GPy(warped GP)/gumbel/... + MACE(Multi-objective ACquisition function Ensemble) with HEBO

Cowen-Rivers, Alexander I., et al. HEBO: Pushing The Limits of Sample-Efficient Hyperparameter Optimisation. Journal of Artificial Intelligence Research, 2022.

Kandasamy K, Schneider J, Póczos B. High dimensional Bayesian optimisation and bandits via additive models. International conference on machine learning, 2015.

  • Python implementation of REMBO

Wang Z, Hutter F, Zoghi M, et al. Bayesian optimization in a billion dimensions via random embeddings. Journal of Artificial Intelligence Research, 2016.

Letham B, Calandra R, Rai A, et al. Re-examining linear embeddings for high-dimensional Bayesian optimization. Advances in neural information processing systems, 2020.

Eriksson D, Pearce M, Gardner J, et al. Scalable global optimization via local bayesian optimization. Advances in neural information processing systems, 2019.

Eriksson D, Jankowiak M. High-dimensional Bayesian optimization with sparse axis-aligned subspaces. Uncertainty in Artificial Intelligence, 2021.

./examples/optimize.py saves optimizing histories in folder ./result, which are automatically read by ./example/plot_result.py.

:speech_balloon: Common Issues

:triangular_flag_on_post: TODO List

  • Introducing more realistic test functions

  • Introducing VAE-based algorithms and related datasets needed

:microscope: Cite Us

:clipboard: Changelog

2025.04.06 > v0.2.0 :fire:

  • Added HPOBench and BBOB synthetic functions. Paper accepted by IJCNN 2025.

2023.06.06 > v0.1.1

  • Fixed logging.

2023.06.03 > v0.1.0

  • Initialization.

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

hdbo_b-0.2.0.tar.gz (64.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

hdbo_b-0.2.0-py3-none-any.whl (123.2 kB view details)

Uploaded Python 3

File details

Details for the file hdbo_b-0.2.0.tar.gz.

File metadata

  • Download URL: hdbo_b-0.2.0.tar.gz
  • Upload date:
  • Size: 64.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.2 CPython/3.9.17 Windows/10

File hashes

Hashes for hdbo_b-0.2.0.tar.gz
Algorithm Hash digest
SHA256 5d68a20e9d9fa4923ac23e1acaec5886896490bb8a02bba23f202745548ab34c
MD5 942d145c8e5d09f1a0233c79d063b188
BLAKE2b-256 cfecc7765b9a3e4d03dd29e85636c536018a07427ee0e6f98b9fd27485d0d796

See more details on using hashes here.

File details

Details for the file hdbo_b-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: hdbo_b-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 123.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/2.1.2 CPython/3.9.17 Windows/10

File hashes

Hashes for hdbo_b-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 92fa88f425cb8a4d8097fe5be81cbeee2d35fbd4eac21b6547738e7c4f2f2ded
MD5 c778fa15c7ea882231366e5941b6b32f
BLAKE2b-256 512f557a0785f775f88bd4147179998450fe2cfec7300e878782deb5ddefb9d6

See more details on using hashes here.

Supported by

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