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

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我可以扩展一个@Component并创建另一个@Component类,一次只能使用一个吗?   dice Java:使用静态方法在Main之外的方法中调用对象   Java中的泛型类型推理(#la C#)   java如何使用进程和PID过滤正确捕获logcat?   java Hibernate:无法获取检索到的关联列表   java Set滑动面板布局水平滚动已禁用   java中128位上的ipv6按位操作   java图形二叉搜索树节点间距   JavaSpring数据,MySQL,连接在8小时不活动后终止   java如何更改Android上必需的Facebook权限字段   java如何从未映射类返回hibernate中受影响的行数   java播放Http。上下文实现   SplashScreen中的java 安卓异常   java Android为什么在onCreate中显示文本   使用JavaPlot的java Spectrogram不起作用   java将SecurityContextToken设置为SOAP头