Skip to main content

Bgolearn

Bgolearn is a Bayesian global optimization package for accelerating materials discovery. It provides practical optimization workflows for costly experiments, including regression-based candidate recommendation, classification boundary exploration, cross-validation diagnostics, and several acquisition functions.

Author and maintainer: Dr.Bin Cao (https://bin-cao.github.io/)

Documentation: https://bgolearn.netlify.app/

Repository: https://github.com/Bin-Cao/Bgolearn

Features

  • Bayesian global optimization for materials design and discovery.
  • Single-objective minimization and maximization workflows.
  • Classification-mode active learning for decision-boundary exploration.
  • Acquisition functions including EI, EI with plugin, augmented EI, EQI, UCB, PoI, PES, and Knowledge Gradient.
  • Built-in surrogate choices for SVM, Random Forest, AdaBoost, and MLP models.
  • Gaussian process modeling with homogeneous or heterogeneous noise support.
  • Optional cross-validation reports and virtual-sample prediction exports.

Installation

pip install Bgolearn

For local development from this repository:

pip install -e .

Quick Start

import pandas as pd

from Bgolearn.BGOsampling import Bgolearn

data = pd.read_csv("data.csv")
virtual_samples = pd.read_csv("virtual_data.csv")

X = data.iloc[:, :-1]
y = data.iloc[:, -1]

optimizer = Bgolearn()
model = optimizer.fit(
    data_matrix=X,
    Measured_response=y,
    virtual_samples=virtual_samples,
    Mission="Regression",
    min_search=True,
)

scores, candidates = model.EI()
print(candidates)

Main API

Bgolearn.fit

Fits a Bayesian optimization workflow and returns an acquisition-function model.

Common parameters:

  • data_matrix: measured feature matrix.
  • Measured_response: measured target values.
  • virtual_samples: candidate samples to rank.
  • Mission: "Regression" or "Classification".
  • Kriging_model: None, a built-in model name, or a custom model class with a fit_pre method.
  • opt_num: number of candidates to recommend.
  • min_search: True for minimization and False for maximization.
  • CV_test: False, "LOOCV", or an integer for k-fold cross-validation.

Custom Surrogate Model

from sklearn.gaussian_process import GaussianProcessRegressor
from sklearn.gaussian_process.kernels import RBF


class CustomKrigingModel:
    def fit_pre(self, xtrain, ytrain, xtest):
        model = GaussianProcessRegressor(kernel=RBF(), normalize_y=True)
        model.fit(xtrain, ytrain)
        mean, std = model.predict(xtest, return_std=True)
        return mean, std

Use it with:

model = optimizer.fit(
    data_matrix=X,
    Measured_response=y,
    virtual_samples=virtual_samples,
    Kriging_model=CustomKrigingModel,
)

Classification Mode

model = optimizer.fit(
    data_matrix=X,
    Measured_response=labels,
    virtual_samples=virtual_samples,
    Mission="Classification",
    Classifier="RandomForest",
)

scores, candidates = model.Entropy()

Available classifiers include GaussianProcess, LogisticRegression, NaiveBayes, SVM, and RandomForest.

Citation

If Bgolearn supports your research, please cite:

Cao B. et al., "Bgolearn: A Unified Bayesian Optimization Framework for Accelerating Materials Discovery", npj Computational Materials. https://doi.org/10.1038/s41524-026-02226-3

Support

Questions, issues, pull requests, and research collaborations are welcome.

Contact: bcao686@connect.hkust-gz.edu.cn

Download files

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

Source Distribution

bgolearn-3.1.0.tar.gz (27.8 kB view details)

Uploaded Source

Built Distribution

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

bgolearn-3.1.0-py3-none-any.whl (30.9 kB view details)

Uploaded Python 3

File details

Details for the file bgolearn-3.1.0.tar.gz.

File metadata

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

File hashes

Hashes for bgolearn-3.1.0.tar.gz
Algorithm Hash digest
SHA256 5e92bbd2f4ddcbed11d8f1fe81c2111e294d868b3bb2fefb08976269fe6fef0d
MD5 6b289d81e28ce6399f9cf40a160e5804
BLAKE2b-256 8db46aad6f5a2f60efd3f3f25883d399958fbdb94f6d28602b86ecc8c6a81ce2

See more details on using hashes here.

File details

Details for the file bgolearn-3.1.0-py3-none-any.whl.

File metadata

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

File hashes

Hashes for bgolearn-3.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c4c3e38035c7e97342eb50a04ded774abc470ceecce81288c5bb260068a9566f
MD5 13551ddf53b3f68d6e2e8e2f17c6cdbe
BLAKE2b-256 041905cf396be64010b511cf8e166a79cf6b3c8287e30e02800b1388a9b0e3ad

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 Sentry Error logging StatusPage Status page