基于序列模型优化的工具箱。
项目描述
Scikit-Optimize
Scikit-Optimize,或skopt,是一个简单且高效的库,用于最小化(非常)昂贵且噪声大的黑盒函数。它实现了几种基于序列模型优化的方法。skopt旨在在各种环境中易于访问和使用。
该库基于NumPy、SciPy和Scikit-Learn构建。
我们不执行基于梯度的优化。对于基于梯度的优化算法,请参阅此处的scipy.optimize。
在gp_minimize的50次迭代后近似目标函数。使用skopt.plots.plot_objective创建的图表。
重要链接
静态文档 - 静态文档
示例笔记本 - 可在示例中找到。
问题跟踪器 - https://github.com/scikit-optimize/scikit-optimize/issues
安装
scikit-optimize需要
Python >= 3.6
NumPy (>= 1.13.3)
SciPy (>= 0.19.1)
joblib (>= 0.11)
scikit-learn >= 0.20
matplotlib >= 2.0.0
您可以使用以下命令安装最新版本
pip install scikit-optimize
这将安装scikit-optimize的必要版本。要安装具有绘图功能的scikit-optimize,您可以选择以下操作
pip install 'scikit-optimize[plots]'
这将安装matplotlib和scikit-optimize。
此外,还有一个 conda-forge 的 scikit-optimize 软件包。
conda install -c conda-forge scikit-optimize
使用 conda-forge 可能是 Windows 上安装 scikit-optimize 的一种最简单的方式。
入门指南
使用 skopt 在范围 -2 < x < 2 上找到噪声函数 f(x) 的最小值。
import numpy as np
from skopt import gp_minimize
def f(x):
return (np.sin(5 * x[0]) * (1 - np.tanh(x[0] ** 2)) +
np.random.randn() * 0.1)
res = gp_minimize(f, [(-2.0, 2.0)])
为了更好地控制优化循环,您可以使用 skopt.Optimizer 类。
from skopt import Optimizer
opt = Optimizer([(-2.0, 2.0)])
for i in range(20):
suggested = opt.ask()
y = f(suggested)
opt.tell(suggested, y)
print('iteration:', i, suggested, y)
开发
该库仍在实验阶段,处于高度开发中。查看 下一个里程碑 了解下一个版本的计划,或者查看一些 简单问题 开始贡献。
可以通过以下方式安装开发版本:
git clone https://github.com/scikit-optimize/scikit-optimize.git cd scikit-optimize pip install -e.
在顶层目录中执行 pytest 以运行所有测试。
要仅运行运行时间较短的测试子集,可以使用 pytest -m 'fast_test' (也可以使用 pytest -m 'slow_test')。要排除所有运行时间较慢的测试,请尝试 pytest -m 'not slow_test'。
这是使用 pytest 属性 实现的。如果一个测试运行时间超过 1 秒,则将其标记为慢速,否则为快速。
所有贡献者都欢迎!
发布版本
发布流程几乎完全自动化。通过标记新版本,travis 将构建所有必需的包并将它们推送到 PyPI。要发布版本,请创建一个新的问题,并按照以下清单进行操作
更新 __init__.py 中的版本标记
更新 README 中提到的版本标记
检查 setup.py 中的依赖项是否有效或需要解包
检查 doc/whats_new/v0.X.rst 是否已更新
master 的最后一个构建成功了吗?
创建一个 新版本
联系 conda-forge
在发布版本之前,我们通常创建一个发布候选版本。如果下一个版本是 v0.X,则发布候选版本应在 __init__.py 中标记为 v0.Xrc1。在标记发布候选版本时,将其标记为“预发布”。
商业支持
如果您需要商业支持或希望赞助开发,请随时联系 tim@wildtreetech.com。资源将用于支付经验丰富的工程师和研究人员的额外工作。
由以下机构支持
scikit-optimize 项目得到了以下机构的支持
如果您的雇主允许您在白天工作 scikit-optimize,并且希望得到认可,请随时将他们添加到“由以下机构支持”列表中。
项目详情
下载文件
下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于 安装包 的信息。
源代码分发
构建版本
skoptimize-0.9.0.tar.gz 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | d5d3f5bc284b4441bf0f672e07a613402abda1c3510466fd604a246411519601 |
|
MD5 | c524544e51f02299f32d22362a5bb956 |
|
BLAKE2b-256 | e8f8d0b86bb69fd07952c47b1011fc0011b3077d027f3c4e45c5e13db040d45a |
skoptimize-0.9.0-py2.py3-none-any.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 01a5c217a31b0870255fc46d5568f71ac7cc04ef3b4beb29870ce377e9948f93 |
|
MD5 | c7528d2d84cce47f3be8f4ea86bff6b4 |
|
BLAKE2b-256 | 22333ff1df8c2e1198045369fbc60941b46b9ea0264b9b0675a7e92b0812e1a8 |