基于序贯模型的优化工具箱。
scikit-optimize的Python项目详细描述
SCIKIT优化
scikit optimize或skopt是一个简单高效的 最小化(非常)昂贵和嘈杂的黑盒功能。它实现了 基于序贯模型优化的几种方法。skopt目标 在许多情况下易于访问和使用。
这个图书馆是建立在numpy、scipy和scikit learn之上的。
我们不执行基于梯度的优化。对于基于渐变的 优化算法研究 scipy.optimizehere。
经50次{TT4} $迭代后的近似目标函数。 使用skopt.plots.plot_objective绘制的绘图。
重要环节
安装
scikit optimize的最新版本是v0.5.2,您可以安装它 使用:
pip install scikit-optimize
这将安装scikit optimize的基本版本。安装scikit optimize 使用绘图功能,您可以改为:
pip install 'scikit-optimize[plots]'
这将安装matplotlib和scikit optimize。
另外还有一个conda-forge包 SCIKIT优化:
conda install -c conda-forge scikit-optimize
使用conda forge可能是安装scikit optimize的最简单方法 窗户。
开始
找出噪声函数f(x)在范围内的最小值 -2 < x < 2与skopt:
importnumpyasnpfromskoptimportgp_minimizedeff(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 课程:
fromskoptimportOptimizeropt=Optimizer([(-2.0,2.0)])foriinrange(20):suggested=opt.ask()y=f(suggested)opt.tell(suggested,y)print('iteration:',i,suggested,y)
发展
图书馆仍处于试验阶段,正在大力发展中。结帐 那next milestone 关于下一个版本的计划,或者看看easy issues 开始做贡献。
开发版本可以通过以下方式安装:
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'。
这是使用pytestattributes实现的。如果测试运行时间超过1秒,则标记为慢速,否则标记为快速。
欢迎所有投稿人!
发布
发布过程几乎是完全自动化的。通过标记新版本 travis将构建所有必需的包并将它们推送到pypi。释放 创建新问题并完成以下清单:
- 在setup.py 中更新版本标记
- 在__init__.py 中更新版本标记
- 更新自述文件中提到的版本标记
- 检查setup.py中的依赖项是否有效或需要取消绑定
- 检查CHANGELOG.md是否是最新的
- 大师的最后一次建造成功了吗?
- 创建new release
- 平conda-forge
在发布之前,我们通常会创建一个发布候选。如果下一个 release是v0.x,那么release候选者应该被标记为v0.xrc1 in setup.py和__init__.py。将发布候选标记为“预发布” 在github上做标记。
商业支持
如果您需要商业广告,请随时get in touch 支持或愿意赞助开发。资源用于支付 为经验丰富的工程师和研究人员提供额外的工作。