问题标签 [scikit-optimize]

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 投票
0 回答
15 浏览

python - 模拟退火变量界限不起作用

我正在使用 scikit-opt 通过模拟退火来最小化函数。问题是变量的边界不起作用,即使我定义了边界,该方法也不会强制执行它们(似乎它使用的是默认值)。我对遗传算法做了同样的事情并且工作正常。有谁知道如何解决这一问题?

这是我为 SA 运行的代码:

0 投票
0 回答
46 浏览

python - 如何使用 scikit-optimize 更改 MLPRegressor 中的隐藏层?

我正在尝试使用 scikit-optimize 来调整 scikit-learn 多层感知回归器 (MLPRegressor) 的超参数。但是,问题是 scikit-optimize 似乎将分类变量列表转换为 numpy 数组,这会导致问题,因为隐藏层数和其中的点数表示为元组,而 numpy 不允许存储元组在数组中(没有将它们声明为对象,在这种情况下我不知道该怎么做)。

我的代码是:

然后我得到这个错误:

E:\UserPrograms\miniconda3\envs\main\lib\site-packages\skopt\space\transformers.py:169: VisibleDeprecationWarning: Creating an ndarray from ragged nested sequence (这是一个列表或元组的列表或-不推荐使用具有不同长度或形状的元组或 ndarrays)。如果您打算这样做,则必须在创建 ndarray 时指定“dtype=object”。X = np.asarray(X)

完整截图如下:

截屏

显然,skopt正在尝试将分类变量搜索空间中给出的列表转换为 numpy 数组。我曾尝试设置transform='identity'声明分类空间,但这无济于事。

我该如何解决这个问题?scikit-optimize 的 github 页面似乎在很长一段时间内都处于非活动状态,并且他们没有回应这些问题,所以我认为这是提出这个问题的最佳场所。

(如果您知道 scikit-optimize 的任何其他替代方案可以做到这一点,我也很乐意使用它!)

0 投票
0 回答
17 浏览

python - scikit-optimize 中的 ask 函数可以并行化吗?

我正在使用 skopt (scikit-optimize) 包,使用 ask-tell 语法。我在 Windows 机器上使用 python 3.7 ask 函数调用需要很长时间(第一次调用 ~1 分钟,然后每次迭代增加 1 分钟,所以最终多达 20 分钟)。有没有办法并行化这个调用(不是我已经并行化的成本函数评估,而是 ask 函数)?我有一台 40 核的机器,还有一个很好的 GPU,两者都可以使用。

谢谢马克

回复杰罗姆:感谢您的浏览,抱歉不清楚。我意识到 CPU 代码不能在 GPU 上运行,但如果有一种方法可以做到这一点,那将是一个选择。我正在做一个非常简单的优化(目前使用 GP,但也想使用 RF 和 GBRF)。我正在使用 ask-tell 语法。基本代码是:

任何建议,将不胜感激。谢谢

0 投票
1 回答
29 浏览

python - 使用 sparse_categorical_crossentropy 运行超参数搜索时出错

我试图了解如何搜索超参数,因此我尝试使用 scikit-optimize 为我的网络找到最佳超参数。我在此链接之后使用此链接作为参考来调整我的代码。就我而言,我有一个分类图像任务和两个类,其中图像具有以下尺寸(128、160、3),我想尝试使用稀疏分类交叉熵找到超参数。

这个选择的原因是我需要使用这些参数进行知识蒸馏。但是,当我尝试使用此模型时,出现以下错误:

我想知道我的网络到底出了什么问题,这是一个最小的可重现示例:

或者,为了进行测试,我尝试使用 categorical_crossentropy 作为成本函数,得到以下结果:

我想知道为什么我的输入在两个成本函数中都没有被接受,以及我需要做哪些更改来为我的训练实施 sparse_categorical_crossentropy 和 categorical_crossentropy?

0 投票
0 回答
8 浏览

python - BayesSearchCV 类混淆中的评分参数

我正在使用 BayesSearchCVscikit-optimize在相当不平衡的数据集上训练模型。从我正在阅读的内容来看,精度或 ROC AUC 将是不平衡数据集的最佳指标。在我的代码中:

迭代次数只是我选择的一个随机值(尽管我收到警告说我已经达到了最佳结果,并且据我所知没有办法提前停止?)。对于评分参数,我指定了roc_auc,我假设它将是监控结果中最佳参数的主要指标。所以当我打电话时knn_b.best_params_,我应该有 roc_auc 指标更高的参数。那是对的吗?

我的困惑是当我使用knn_b.cv_results_. 由于 BayesSearchCV 类中的评分参数,不mean_test_score应该是分数吗?roc_auc我在做什么绘制结果并查看每个参数组合的执行情况。

当我尝试使用roc_auc_score()真实值和预测值起作用时,我得到了完全不同的东西。

mean_test_score这里不一样吗?我如何能够获得每个迭代的每个 CV/拆分的个人/平均 roc_auc 分数?同样,当我想使用 RandomizedSearchCV 或 GridSearchCV 时。