一个纯 Python 实现的贝叶斯全局优化库,用高斯过程拟合目标函数,在尽量少的迭代次数内寻找未知函数的最大值,适合高成本函数优化。
这个工具是什么
BayesianOptimization 是一个基于贝叶斯推断与高斯过程的约束全局优化包,官方描述为「A Python implementation of global optimization with gaussian processes」。它通过构造描述目标函数的高斯过程后验分布,随着观测点增加不断更新后验,从而判断参数空间中哪些区域值得探索。每一步都会对已知样本拟合高斯过程,并结合 UCB、EI 等探索策略确定下一个采样点,在探索与利用之间取得平衡。该方法把原问题转化为求采集函数最大值的代理优化问题,因此适用于采样代价高昂的场景。项目采用 MIT 许可证,主要语言为 Python,仓库星标约 8711,仍在活跃开发中。
核心能力
- 纯 Python 实现,基于贝叶斯推断与高斯过程进行全局优化
- 面向高成本函数,力求以尽量少的迭代次数找到最大值
- 通过采集函数(如 UCB、EI)平衡探索与利用
- 支持带约束的优化问题,并提供文档与示例
科研中的典型用法
- 调参场景:目标函数一次评估代价高时,用它减少评估次数寻找较优参数组合
- 黑箱函数优化:只需提供接受参数并返回实数的函数 f 及参数边界即可开始
- 实验设计:在参数空间中逐步采样,借助后验分布判断下一步值得探索的区域
快速上手
可通过 pip 安装:pip install bayesian-optimization,也可用 conda:conda install -c conda-forge bayesian-optimization。入门时先定义一个接受已知参数、返回实数的目标函数 f,再实例化 BayesianOptimization 对象,指定 f 及各参数的边界,然后按文档说明迭代调用即可。详细用法见官方文档站点。
生态与相近工具
README 未列举同类工具,也未与其他库作比较。该包定位为纯 Python 的贝叶斯全局优化实现,适合需要高斯过程优化且希望依赖较轻的场景;若需求超出其范围,可参考文档中给出的参考文献了解该方法本身,再自行评估是否选用其他方案。
项目信息
- 仓库:bayesian-optimization/BayesianOptimization
- 星标:8,711 · 派生:1,604
- 主要语言:Python
- 许可证:MIT
- 最近提交:2026-08-21
- 项目主页:https://bayesian-optimization.github.io/BayesianOptimization/index.html
本文属于《学科研究工具知识库 · 数学》第 2 篇(按 GitHub 星标排序)。收录标准:该学科公开可获取的开源研究工具,星标与活跃度为主要参考,不代表对其性能或适用性的背书;选型前请结合自身场景评估。

发表评论 取消回复