基于序贯模型的优化工具箱。

scikit-optimize的Python项目详细描述


Logo

Travis StatusCircleCI StatusbindergitterZenodo DOI

SCIKIT优化

scikit optimize或skopt是一个简单高效的 最小化(非常)昂贵和嘈杂的黑盒功能。它实现了 基于序贯模型优化的几种方法。skopt目标 在许多情况下易于访问和使用。

这个图书馆是建立在numpy、scipy和scikit learn之上的。

我们不执行基于梯度的优化。对于基于渐变的 优化算法研究 scipy.optimizehere

Approximated objective

经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 < 2skopt

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)

阅读我们的introduction to bayesian optimization 另一个 examples

发展

图书馆仍处于试验阶段,正在大力发展中。结帐 那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 支持或愿意赞助开发。资源用于支付 为经验丰富的工程师和研究人员提供额外的工作。

通过

实现

scikit优化项目在

Wild Tree TechNYU Center for Data ScienceNSFNorthrop Grumman

如果您的雇主允许您在白天进行scikit优化,并且希望 认可,随时将其添加到“maked possible by”列表中。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java什么会导致程序在它似乎拥有的监视器上被阻止?   java Android studio设置视图的背景色   java我可以保存一个文本文件而不给用户修改它的能力吗?   pdfbox PDFBOX2。0:java堆堆栈错误   java是维护和操作AllowList的有效方法   JAVAsql。SQLException:找不到适合jdbc的驱动程序:mysql://localhost:3306/asd性爱   如何使用java。lang.NullPointerException:void 安卓。支持v7。应用程序。ActionBar。setElevation(float)“”在空对象引用上'   java调试空指针异常   java正则表达式,以按令牌的特定匹配项拆分,同时忽略其他匹配项   java为JPanel设置边框上的笔划   并发@Schedule方法的java行为   如何在Java中使用泛型与语言运算符和泛型类扩展数   java Rhino Javascript如何为异常堆栈跟踪标记字符串源   运行可执行jar时发生java错误,无法找到或加载主类