问题标签 [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 投票
2 回答
1064 浏览

python - 为随机森林分类器运行任何 BayesSearchCV 函数时出错

我正在尝试使用 RF 分类器,但每次尝试运行 bayessearchCV 函数时,都会返回错误。附件是我的具体示例和您可以运行和重现的示例。我怀疑这可能是由于 train_test_split 函数,但我不完全确定如何分类。如果我的代码中有任何明显错误的地方,请告诉我...

我目前正在使用最新版本的 sklearn/skopt/numpy 等

错误

一个让你重现

这给出了与我机器上的第一个示例相同的错误。

0 投票
0 回答
82 浏览

scikit-optimize - scikit-optimize API 可以使用更改约束吗?

scikit-optimize 的典型用例是给定一组固定超参数的优化目标,其中 skopt 可以完全控制探索空间。但是,人们可能希望同时向 skopt公开一个变量,并在随后的迭代中将其固定为某个值,因为它超出了一个人的控制范围。这可以使用当前的 API 吗?

假设用例:

我们希望最大化自行车销售利润。价格是一个需要优化的自由参数。降雨预报超出了我们的控制范围,但我们希望在 skopt 中对其进行控制。

0 投票
1 回答
669 浏览

python - BayesSearchCV ValueError:所有整数值应大于 0.000000

我正在尝试使用 BayesSearchCV 调整 xgboost 模型以进行多类分类。这是我的代码。

当我运行它时,一切都很好,直到它到达模型 10,返回此错误:

我显然已经用谷歌搜索了,但没有发现任何有用的东西。有任何想法吗?

顺便说一句,以防万一,我的数据集中根本没有负值。

0 投票
1 回答
436 浏览

python - 如何在类中使用 scikit-learn 优化(尤其是 use_named_args 装饰器)?

我正在使用 scikit-learn 优化包来调整模型的超参数。出于性能和可读性的原因(我正在使用相同的过程训练多个模型),我想在一个类中构建整个超参数调整:

现在我得到了装饰器@use_named_args 没有在一个类中正常工作的问题(scikit-optimize 的示例代码)。我收到错误消息

这显然是关于在这种情况下对装饰器的滥用。

可能是由于我对此类装饰器的功能缺乏了解,我无法运行它。有人可以帮我解决这个问题吗?

提前感谢大家的支持!

0 投票
1 回答
160 浏览

python - 使用来自 Scikit Optimize 的 @use_named_args

我在使用@use_named_argsScikit Optimize时遇到问题。问题是我的目标函数接受参数NamedTuple并且我无法更改它,因为这是我正在处理的项目中的要求。现在,我需要实现skopt超参数搜索,我需要用它@use_named_args来装饰我的目标函数。由于我的目标函数接受NamedTuple而不是单个参数(如skopt示例中的那个),我该怎么做?除了需要调整的可变超参数之外,我还需要传递一个固定的超参数集。

下面是我想要实现的代码,但我不能,因为我不能my_objective_function@use_named_args

谢谢!

0 投票
1 回答
1591 浏览

python - lightgbm.basic.LightGBMError:检查失败:(best_split_info.left_count)>(0)

还有其他几个与此类似的问题,但我找不到似乎适合的解决方案。我正在将 LightGBM 与 Scikit-Optimize BayesSearchCV 一起使用。

训练运行了一段时间,然后出现以下错误:

类似问题的一些答案表明这可能是使用 GPU 的结果,但我没有可用的 GPU。我不知道还有什么原因导致它或如何尝试修复它。任何人都可以提出任何建议吗?

0 投票
0 回答
251 浏览

python-3.x - RuntimeError:无法启动新线程

我的目标是在 python 中使用 Scikit-Optimize 库来最小化函数值,以便找到 xgboost 模型的优化参数。该过程涉及使用不同的随机参数运行模型 5,000 次。

但是,似乎循环在某个时候停止并给了我一个 RuntimeError: can't start new thread。我正在使用 ubuntu 20.04 并且正在运行 python 3.8.5,Scikit-Optimize 版本是 0.8.1。我在 Windows 10 中运行了相同的代码,似乎没有遇到此 RuntimeError,但是,代码运行速度要慢得多。

我想我可能需要一个线程池来解决这个问题,但是在网上搜索之后,我没有找到实现线程池的解决方案。

以下是代码的简化版本:

以下是错误消息:

0 投票
1 回答
554 浏览

scikit-learn - BayesSearchCV 参数

我刚读过Bayesian optimization,我想试试。

我安装scikit-optimize并检查了 API,我很困惑:

  1. 我读到贝叶斯优化从一些初始化样本开始。

    • 我看不到在哪里可以更改此号码?( BayesSearchCV)
    • n_points将更改参数设置的数量以并行采样并且n_iter是迭代次数(如果我没记错迭代不能并行运行,算法会在每次迭代后改进参数)
  2. 我读到我们可以使用不同的采集功能。我看不到在哪里可以更改采集功能BayesSearchCV

0 投票
1 回答
177 浏览

optimization - 什么是 kappa 变量(贝叶斯优化)

我阅读了一些关于变量的帖子和教程BayesianOptimization,但从未见过关于kappa变量的解释。

  • kappa变量是什么?
  • 它对我们有什么帮助?
  • 这些值如何影响BayesianOptimization过程?
0 投票
1 回答
421 浏览

python - scikit-optimize 中的 cv_results_ 和 best_score_ 的测试分数是如何计算的?

我正在使用BayesSearchCVfromscikit-optimize来优化XGBoost模型以适应我拥有的一些数据。虽然模型很合适,但我对诊断信息中提供的分数感到困惑,无法复制它们。

这是一个使用波士顿房价数据集的示例脚本来说明我的观点:

运行后, xgb_cv.best_score_为 0.816,xgb_cv.best_index_为 3。查看 xgb_cv.cv_results_,我想找到每个折叠的最佳分数:

这使:

我不确定这里计算的是什么,因为在我的代码scoring中设置为。NoneXGBoost 的文档没有太大帮助,但根据xgb_cv.best_estimator_.score?它应该是预测值的 R2。无论如何,当我手动尝试计算拟合中使用的数据的每个折叠的分数时,我无法获得这些值:

这给了我以下信息:

BayesSearchCV 如何计算每个折叠的分数,为什么我不能使用该score函数复制它们?对于此问题的任何帮助,我将不胜感激。

(此外,手动计算这些分数的平均值给出:0.8156560 ...,而xgb_cv.best_score_给出:0.8159277 ...不知道为什么这里有精度差异。)