Bgolearn#

备注

欢迎使用 Bgolearn 文档:一个专为材料研发而设计的贝叶斯优化算法包。本文档由 曹斌 编写和制作,旨在帮助新学习者掌握贝叶斯优化的基础知识,并使用 Bgolearn 解决实际优化问题。

什么是 Bgolearn?

Bgolearn 是由 曹斌(香港科技大学(广州)) 开发的 Python 软件包,实现了先进贝叶斯优化算法的轻量化使用,支持单目标和多目标优化问题。它主要应用于材料性质优化,尤其适用于实验成本高昂且耗时的场景。

核心特性:

  • 支持多种采集(效用)函数的单目标优化

  • 支持通过 MultiBgolearn 实现多目标优化

  • 专注于材料科学中遇到的设计和应用场景

  • 灵活的代理模型选择

  • 补充了基于 Bootstrap 不确定性量化

Bgolearn 的特别之处?

  • 材料科学导向:专为材料科学工作流程构建

  • 并行实验:批量优化以实现高效资源利用

  • 丰富的可视化:交互式图表和优化仪表板

  • 稳健可靠:全面的错误处理和数据验证

  • 易于使用:简洁的 API 和合理的默认设置

关于

Bgolearn 项目获得了 上海市人工智能开源奖励项目支持计划(2025) 的支持,资助金额为 50 万元人民币。特别感谢 上海大学熊杰教授张统一教授 对本项目的支持与指导。

Bgolearn 的最新综述已发表在 arXiv, 2026。深切感谢 张统一院士(上海大学、香港科技大学(广州))、Turab Lookman 教授(西安交通大学)、薛德祯教授(西安交通大学)、熊杰教授(上海大学)和 惠健教授(苏州实验室)的指导和贡献。

核心特性

材料科学

专门的工作流程用于成分优化、工艺参数调整和多目标材料设计。

多种采集函数

EI、UCB、PI、PES、KG 等,适用于不同的优化策略和实验约束。

批量优化

选择多个实验进行并行执行,显著减少优化时间和成本。

可视化

交互式图表、优化仪表板和材料专用可视化,提供更好的洞察。

快速入门示例

 1from Bgolearn import BGOsampling
 2import pandas as pd
 3import numpy as np
 4
 5# Load your materials data
 6X_train = pd.DataFrame(np.random.randn(20, 3), columns=['Temperature', 'Pressure', 'Composition'])
 7y_train = pd.Series(np.random.randn(20))  # Target property (e.g., strength)
 8X_candidates = pd.DataFrame(np.random.randn(100, 3), columns=['Temperature', 'Pressure', 'Composition'])
 9
10# Initialize and fit Bgolearn
11optimizer = BGOsampling.Bgolearn()
12model = optimizer.fit(
13    data_matrix=X_train,  # Pass DataFrame directly
14    Measured_response=y_train,  # Pass Series directly
15    virtual_samples=X_candidates,  # Pass DataFrame directly
16    opt_num=1
17)
18
19# Get recommendation using Expected Improvement
20ei_values, recommended_points = model.EI()
21
22# The recommended point(s)
23next_experiment = recommended_points[0]  # First (best) recommendation
24print(f"Next recommended experiment: {next_experiment}")
25
26# Get prediction for all virtual samples
27predicted_values = model.virtual_samples_mean
28print(f"Number of predictions: {len(predicted_values)}")
29
30# Basic visualization using matplotlib
31import matplotlib.pyplot as plt
32
33# Plot EI values
34plt.figure(figsize=(10, 6))
35plt.plot(ei_values)
36plt.title('Expected Improvement Values')
37plt.xlabel('Candidate Index')
38plt.ylabel('EI Value')
39plt.show()

安装#

pip install bgolearn
git clone https://github.com/Bin-Cao/Bgolearn.git
cd Bgolearn
pip install -e .
# Complete installation with all features
pip install bgolearn[all]

# Or install specific components
pip install bgolearn plotly seaborn  # For advanced visualization
pip install bgolearn pymatgen matminer  # For materials science

验证安装

from Bgolearn import BGOsampling
print("Bgolearn imported successfully!")

# Test basic functionality
opt = BGOsampling.Bgolearn()
print("Bgolearn optimizer initialized successfully!")

文档结构#

本文档分为以下几个主要部分:

入门指南

安装、基本概念和您的第一次优化

Bgolearn 入门指南
BgoFace 图形界面

可视化优化工作流程的图形用户界面

BgoFace:Bgolearn 的图形用户界面
核心文档

API 参考、采集函数和优化策略

API 参考
应用

材料发现工作流程和专业应用

使用 Bgolearn 进行材料发现

详细导航#

学习路径#

根据您的背景和目标选择学习路径:

刚接触贝叶斯优化?

  1. Bgolearn 入门指南 - 安装和基本概念

  2. 您的第一次优化 - 您的第一次优化教程

  3. 采集函数指南 - 理解采集函数

  4. 单目标优化示例 - 单目标示例

专注于材料发现?

  1. 使用 Bgolearn 进行材料发现 - 材料发现概述

  2. 单目标优化示例 - 合金成分优化

  3. MultiBgolearn:多目标贝叶斯全局优化 - 多目标优化

  4. 多目标优化示例 - 多属性设计示例

准备好使用高级功能?

  1. 优化策略 - 高级优化策略

  2. Bgolearn 中的代理模型 - 不同的代理模型

  3. BgoFace:Bgolearn 的图形用户界面 - 可视化工作流程的 GUI 界面

  4. MultiBgolearn:多目标贝叶斯全局优化 - 多目标优化

社区与支持#

获取帮助与联系

  • GitHub Discussions:提问和分享经验

  • Issues:报告错误和请求功能

  • Email:binjacobcao@gmail.com

  • Documentation:您正在阅读!

引用#

如果您在研究中使用 Bgolearn,请引用我们的工作:

@article{cao2026bgolearn,
  title        = {Bgolearn: a Unified Bayesian Optimization Framework for Accelerating Materials Discovery},
  author       = {Cao, Bin and Xiong, Jie and Ma, Jiaxuan and Tian, Yuan and Hu, Yirui and He, Mengwei and Zhang, Longhan and Wang, Jiayu and Hui, Jian and Liu, Li and Xue, Dezhen and Lookman, Turab and Zhang, Tong-Yi},
  journal      = {arXiv preprint arXiv:2601.06820},
  year         = {2026},
  eprint       = {2601.06820},
  archivePrefix= {arXiv},
  primaryClass = {cond-mat.mtrl-sci},
  doi          = {https://doi.org/10.48550/arXiv.2601.06820},
  note         = {38 pages, 5 figures}
}

许可证#

MIT 许可证

Bgolearn 在 MIT 许可证下发布,可免费用于学术和商业用途。 详情请参阅 完整许可证


准备好加速您的研究了吗? 从这里开始 或探索我们的 示例 以查看 Bgolearn 的实际应用!