问题标签 [skopt]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
69 浏览

python - 在 skopt 中为函数 f(x1,x2) 设置 x 的每个维度的界限

我有一个函数 f(x1,x2) 并且想使用 skopt 为 x 的两个维度设置 gp_minimization 的边界。

使用一个变量 (x1) 效果很好:

但是使用具有多个变量的函数,例如 f(x1,x2),我需要添加第二个变量的边界。我试过这样:

我收到错误消息: ValueError: Invalid dimension [(1.0, 4.0), (1.1, 3.9)]。阅读支持类型的文档。

通过将边界更改为此:

我收到以下错误消息: TypeError: func() missing 1 required positional argument: 'x2'

你能帮我解决这个问题吗?如何设置两个变量的界限?

参考此示例(Tim Head,2016 年 7 月。由 Holger Nahrstaedt 2020 重新格式化): https ://scikit-optimize.github.io/stable/auto_examples/strategy-comparison.html#sphx-glr-download-auto-examples-策略比较-py

0 投票
2 回答
1730 浏览

python - scikit-learn 0.24.1 和 scikit-optimize 0.8.1 之间的不兼容问题

我有 scikit-learn 0.24.1 和 scikit-optimize 0.8.1,当我尝试使用 BayesSearchCV 函数时,它给了我这个错误:

当我搜索时发现在新的 scikit-learn 中不推荐使用“iid”,有什么建议可以解决这个问题吗?

0 投票
1 回答
93 浏览

python - 可以限制 skopt.Lhs.generate 的结果吗?

假设我有一个这样的数组:

我现在想用skopt.Lhs.generate一个来填充这个数组的某些位置1,我想排除存储在的某些位置ignore

我将如何做到最好?

我可以

这使

但是正如人们所看到的那样,该职位4, 1已被占用,但不应如此。

一种方法是将lhs.generate调用放在while循环中,然后始终检查是否有任何元素,ignore但我想知道是否有更直接的解决方案。

0 投票
1 回答
66 浏览

scikit-optimize - skopt:如何在优化期间动态更改边界?

我刚刚开始使用 skopt,所以请随时将我重定向到我可能错过的任何基本教程。无论如何,这里是:

我有一个优化问题,我通过复杂的物理模型计算 2 峰光谱,然后提取其洛伦兹曲线(即 6 个参数,每个峰 3 个)。然后我设置了一个成本函数,计算计算参数和实验参数之间的平方差,这样我得到一个 f(x),它接受一个数组并返回一个标量(如果我理解正确,这就是 gp_minimize 所要求的)。

我使用以下方法设置问题的约束:

暗1=真实(名称=“A1”,低=1,高=100)暗2=真实(名称=“A2”,低=1,高=200)

尺寸 = [dim1, dim2,...] 但在我的特定系统中,A2 受 2*A1 约束。有没有办法在如上所示的约束中使用它,以避免搜索大量“非物理”参数空间?在我的特殊情况下,评估模型非常耗时,因此避免不必要的计算将非常有帮助:)

在此先感谢您的帮助!

最好的,克里斯

0 投票
0 回答
203 浏览

scikit-learn - 使用 scikit-optimize 在管道中调整自定义变压器

我正在实现一个自定义转换器以在我的管道中使用,它在初始化时使用参数myClusters(现在称为 K-Means Clustering,但只是一个测试类):

管道本身通过 skicit-optimize 进行调整:

现在调用opt.fit(X, y)给我以下错误:

我不确定如何处理这个问题,但是,如果myClusters从转换器中删除变量,并且在管道中,不会引发错误。

编辑 12/07/2021:我认为这里的问题是BayesSearchCV无法处理多种算法,并且一次只能优化一种算法。

但是,这个问题可以很容易地通过使用该函数skopt.gp_minimize()来解决。正如在此示例中所见,这允许通过简单地将参数传递给目标函数并在此函数中执行工作流来使用自定义工作流。

0 投票
1 回答
112 浏览

parallel-processing - skopt BayesSearchCV 中的 n_points 是如何工作的?

我对 n_points 在 skopt BayesSearchCV 中的工作方式感到困惑。据我了解,贝叶斯搜索是顺序的。但是在 skopt BayesSearchCV 中,我们可以设置 n_point 参数,该参数指定要并行采样的参数设置的数量。这种并行性如何工作?它是执行 n_points 数量的独立贝叶斯搜索还是执行批量贝叶斯优化?

0 投票
1 回答
91 浏览

python - Skopt.gp_minimize:将参数传递给目标函数

我正在尝试使用 skopt 中的 gp_minimize 实现优化。但是,我的目标函数需要一些对象来处理,类似于:

有没有(正确的)方法可以做到这一点?我有几个想法:

  1. 每次优化时读取树并将其存储在 pickle 文件中
  2. 定义树,使它们在目标函数的范围内

谢谢

0 投票
0 回答
52 浏览

keras - 保存和加载 BayesSearchCV 训练的模型 - TypeError: can't pickle _thread.RLock objects

如何从 BayesSearchCV 保存和加载模型。我想将它保存到我的本地计算机并将其加载到 Kaggle 中,但是我尝试了 keras 命令 model.save() 和 skopt dump() {正确的方式},但都没有保存我的模型。任何帮助深表感谢!

功能:

调用函数

我收到 TypeError: can't pickle _thread.RLock objects

如果有帮助,很高兴发布令人难以置信的长完整堆栈跟踪,但顶部和底部三个部分是:

最佳:

底部:

0 投票
0 回答
39 浏览

tensorflow - Skopt gp_minimize eroor 同时寻找最佳点

我对 skopt 的 gp_minimize 有疑问。我正在为迁移学习(基本模型 vgg19)进行超参数调整。一切正常,直到 gp_minimize 开始评估最佳点(评估随机点工作正常)。我有这个错误,我花了几天时间,我仍然不知道该怎么做:

代码来自教程,如下所示(仅重要部分):

0 投票
0 回答
40 浏览

machine-learning - Sckopt 库在尝试使用 BayesSearchCV 时出错

这是我的代码:

我的程序只有在我评论这三个参数时才会运行,但是如果我让它们处于活动状态,它会给我错误:

我怎么还能包含这个参数,它拒绝接受它的原因是什么?