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)

HTML Experiment Report

Fit the optimizer, then generate a self-contained report after selecting an acquisition function:

model = optimizer.fit(
    data_matrix=X,
    Measured_response=y,
    virtual_samples=virtual_samples,
    CV_test=5,
)

report_path = model.HTML_report("EI")
print(report_path)

HTML_report writes an offline HTML file in Bgolearn/Reports/. It includes the model summary, cross-validation diagnostics, the embedded prediction plot, recommended experiments, and the full utility ranking. Reports are generated automatically whenever a regression utility such as model.EI() or model.UCB() is called. Set Generate_HTML_report=False to disable this behavior.

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

Release files for Bgolearn 3.1.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for Bgolearn 3.1.2
File Size Uploaded
bgolearn-3.1.2.tar.gz 35.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for Bgolearn 3.1.2
File Interpreter ABI Platform
bgolearn-3.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 74.6 kB

Release files / bgolearn-3.1.2.tar.gz

Download URL bgolearn-3.1.2.tar.gz
Size 35.6 kB
Tags Source
SHA-256 checksum
How to use checksums
470493394c3b41f4a29ee0c21411fd8fd986ca04f1c7803f4d5a12ffa0dec005
BLAKE2b-256 checksum
How to use checksums
68aefc7f8c118a0b1ec5a9401a1886701f081d8a997bc63872645ffbb729b90b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.19

Release files / bgolearn-3.1.2-py3-none-any.whl

Download URL bgolearn-3.1.2-py3-none-any.whl
Size 39.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
7d164c87f8f75cf8709841722bbb8803c3a6ceba40532dac847c2c36dc2dc55c
BLAKE2b-256 checksum
How to use checksums
6e6ce4b3d82739809e109a09e1ab3c8fed0b7afe95b0a1441369cea302b2f4b5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.9.19

Release history Release notifications | RSS feed

This release

3.1.2 This release

2 release files

3.1.0

2 release files

3.0.0

2 release files

2.4.0

2 release files

2.3.9

2 release files

2.3.8

2 release files

2.3.7

2 release files

2.3.5

2 release files

2.3.1

2 release files

2.3.0

2 release files

2.2.4

2 release files

2.2.3

2 release files

2.2.2

2 release files

2.2.1

2 release files

2.1.1

2 release files

2.0.0

2 release files

1.5.1

2 release files

1.5.0

2 release files

1.4.0

2 release files

1.3.0

2 release files

1.2.0

2 release files

1.1.9

2 release files

1.1.8

2 release files

1.1.5

2 release files

1.1.4

2 release files

1.1.2

2 release files

1.0.6

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.2

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page