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 afit_premethod.opt_num: number of candidates to recommend.min_search:Truefor minimization andFalsefor 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5e92bbd2f4ddcbed11d8f1fe81c2111e294d868b3bb2fefb08976269fe6fef0d
|
|
| MD5 |
6b289d81e28ce6399f9cf40a160e5804
|
|
| BLAKE2b-256 |
8db46aad6f5a2f60efd3f3f25883d399958fbdb94f6d28602b86ecc8c6a81ce2
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c4c3e38035c7e97342eb50a04ded774abc470ceecce81288c5bb260068a9566f
|
|
| MD5 |
13551ddf53b3f68d6e2e8e2f17c6cdbe
|
|
| BLAKE2b-256 |
041905cf396be64010b511cf8e166a79cf6b3c8287e30e02800b1388a9b0e3ad
|