NUBO: A Transparent Python Package for Bayesian Optimization

arXiv stat.ML / 4/29/2026

💬 OpinionDeveloper Stack & InfrastructureTools & Practical UsageModels & Research

Key Points

  • NUBO is a transparent, open-source Bayesian optimization framework designed for optimizing expensive-to-evaluate black-box functions, including physical experiments and computer simulators.
  • The package uses Gaussian-process surrogate modeling and acquisition functions to efficiently approximate global optima while reducing evaluation cost.
  • NUBO emphasizes transparency and usability through clean, understandable Python code, precise references, and thorough documentation.
  • It provides modular building blocks that let users write their own optimization loops and supports sequential, parallel, and asynchronous optimization over bounded and constrained (including mixed discrete/continuous) parameter spaces.
  • NUBO includes only thoroughly tested and validated algorithms to keep the library compact and user-friendly, and it is BSD 3-Clause licensed.

Abstract

NUBO, short for Newcastle University Bayesian Optimisation, is a Bayesian optimization framework for the optimization of expensive-to-evaluate black-box functions, such as physical experiments and computer simulators. Bayesian optimization is a costefficient optimization strategy that uses surrogate modelling via Gaussian processes to represent an objective function and acquisition functions to guide the selection of candidate points to approximate the global optimum of the objective function. NUBO itself focuses on transparency and user experience to make Bayesian optimization easily accessible to researchers from all disciplines. Clean and understandable code, precise references, and thorough documentation ensure transparency, while user experience is ensured by a modular and flexible design, easy-to-write syntax, and careful selection of Bayesian optimization algorithms. NUBO allows users to tailor Bayesian optimization to their specific problem by writing the optimization loop themselves using the provided building blocks. It supports sequential single-point, parallel multi-point, and asynchronous optimization of bounded, constrained, and/or mixed (discrete and continuous) parameter input spaces. Only algorithms and methods that are extensively tested and validated to perform well are included in NUBO. This ensures that the package remains compact and does not overwhelm the user with an unnecessarily large number of options. The package is written in Python but does not require expert knowledge of Python to optimize your simulators and experiments. NUBO is distributed as open-source software under the BSD 3-Clause license.