Skip to main content

Python package designed for multi-objective Bayesian global optimization (MOBO)

Project description

MultiBgolearn

MultiBgolearn is a Python package for multi-objective Bayesian global optimization (MOBO), with a focus on materials design tasks where several properties must be optimized at the same time.

The package extends the idea of Bgolearn from single-objective optimization to multi-objective optimization. It is suitable for candidate recommendation problems that require balancing competing objectives, such as maximizing one material property while minimizing or constraining another.

Features

  • Multi-objective Bayesian global optimization workflow.
  • Support for common acquisition strategies, including EHVI, PI, UCB, and qNEHVI.
  • Automatic model comparison using leave-one-out cross-validation.
  • Surrogate models based on scikit-learn regressors.
  • Candidate recommendation from a virtual search space.
  • Prediction result export and model-performance visualization.

Basic Usage

from MultiBgolearn.bgo import fit

recommended_data, improvements, index = fit(
    dataset="./data/dataset.csv",
    VSdataset="./data/virtual_space.csv",
    object_num=3,
    max_search=True,
    method="EHVI",
    bootstrap=5,
)

Input Data

dataset should be a .csv, .xlsx, or .xls file. Feature columns should come first, followed by the objective columns. The number of objective columns is specified by object_num.

VSdataset should contain the candidate virtual search space. If the candidate space contains more than 20,000 rows, MultiBgolearn samples 20,000 candidates with a fixed random seed before recommendation.

Main Parameters

  • dataset: path to the observed training dataset.
  • VSdataset: path to the virtual search-space dataset.
  • object_num: number of objective columns in dataset.
  • max_search: True for maximization and False for minimization.
  • method: acquisition method, such as EHVI, PI, UCB, or qNEHVI.
  • assign_model: optional model name. If not provided, MultiBgolearn evaluates available models and recommends the best one.
  • bootstrap: number of bootstrap rounds for uncertainty estimation.
  • batch_size: number of candidates selected for batch acquisition methods.
  • noise_std: observation-noise standard deviation for qNEHVI.

Author

Dr. Bin Cao
Personal homepage: https://bin-cao.github.io/
GitHub: https://github.com/Bin-Cao/MultiBgolearn
Email: bcao686@connect.hkust-gz.edu.cn

For questions, issues, or suggestions, please open an issue on GitHub or contact the author by email.

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

multibgolearn-0.1.1.tar.gz (11.0 kB view details)

Uploaded Source

Built Distribution

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

multibgolearn-0.1.1-py3-none-any.whl (12.6 kB view details)

Uploaded Python 3

File details

Details for the file multibgolearn-0.1.1.tar.gz.

File metadata

  • Download URL: multibgolearn-0.1.1.tar.gz
  • Upload date:
  • Size: 11.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.19

File hashes

Hashes for multibgolearn-0.1.1.tar.gz
Algorithm Hash digest
SHA256 8b42f9d745ffdd2fa243b0344f28a91814b411c56713fa0b7f857ba2d8eb5e30
MD5 0a0e2796afc6b5b147b5e4dc701cc81c
BLAKE2b-256 4b4b757a072bb409d670c4d7aeb5bef6cf334426d60327fa58eac462ccee7c0e

See more details on using hashes here.

File details

Details for the file multibgolearn-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: multibgolearn-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 12.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.19

File hashes

Hashes for multibgolearn-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 26ce4ebd3f9eef47cda39bf1f08d5cfcb3b94a110758242271f920593b2eacd2
MD5 55665c275a2c6d3d813f1a718fd58655
BLAKE2b-256 4c944ddc60aaba56e1d748d680a83d945737ec3a51d72f913ed2d0aec2f2d1fd

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