问题标签 [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.
python - 为随机森林分类器运行任何 BayesSearchCV 函数时出错
我正在尝试使用 RF 分类器,但每次尝试运行 bayessearchCV 函数时,都会返回错误。附件是我的具体示例和您可以运行和重现的示例。我怀疑这可能是由于 train_test_split 函数,但我不完全确定如何分类。如果我的代码中有任何明显错误的地方,请告诉我...
我目前正在使用最新版本的 sklearn/skopt/numpy 等
错误
一个让你重现
这给出了与我机器上的第一个示例相同的错误。
scikit-optimize - scikit-optimize API 可以使用更改约束吗?
scikit-optimize 的典型用例是给定一组固定超参数的优化目标,其中 skopt 可以完全控制探索空间。但是,人们可能希望同时向 skopt公开一个变量,并在随后的迭代中将其固定为某个值,因为它超出了一个人的控制范围。这可以使用当前的 API 吗?
假设用例:
我们希望最大化自行车销售利润。价格是一个需要优化的自由参数。降雨预报超出了我们的控制范围,但我们希望在 skopt 中对其进行控制。
python - BayesSearchCV ValueError:所有整数值应大于 0.000000
我正在尝试使用 BayesSearchCV 调整 xgboost 模型以进行多类分类。这是我的代码。
当我运行它时,一切都很好,直到它到达模型 10,返回此错误:
我显然已经用谷歌搜索了,但没有发现任何有用的东西。有任何想法吗?
顺便说一句,以防万一,我的数据集中根本没有负值。
python - 如何在类中使用 scikit-learn 优化(尤其是 use_named_args 装饰器)?
我正在使用 scikit-learn 优化包来调整模型的超参数。出于性能和可读性的原因(我正在使用相同的过程训练多个模型),我想在一个类中构建整个超参数调整:
现在我得到了装饰器@use_named_args 没有在一个类中正常工作的问题(scikit-optimize 的示例代码)。我收到错误消息
这显然是关于在这种情况下对装饰器的滥用。
可能是由于我对此类装饰器的功能缺乏了解,我无法运行它。有人可以帮我解决这个问题吗?
提前感谢大家的支持!
python - 使用来自 Scikit Optimize 的 @use_named_args
我在使用@use_named_args
Scikit Optimize时遇到问题。问题是我的目标函数接受参数NamedTuple
并且我无法更改它,因为这是我正在处理的项目中的要求。现在,我需要实现skopt
超参数搜索,我需要用它@use_named_args
来装饰我的目标函数。由于我的目标函数接受NamedTuple
而不是单个参数(如skopt
示例中的那个),我该怎么做?除了需要调整的可变超参数之外,我还需要传递一个固定的超参数集。
下面是我想要实现的代码,但我不能,因为我不能my_objective_function
用@use_named_args
谢谢!
python - lightgbm.basic.LightGBMError:检查失败:(best_split_info.left_count)>(0)
还有其他几个与此类似的问题,但我找不到似乎适合的解决方案。我正在将 LightGBM 与 Scikit-Optimize BayesSearchCV 一起使用。
训练运行了一段时间,然后出现以下错误:
类似问题的一些答案表明这可能是使用 GPU 的结果,但我没有可用的 GPU。我不知道还有什么原因导致它或如何尝试修复它。任何人都可以提出任何建议吗?
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,但是,代码运行速度要慢得多。
我想我可能需要一个线程池来解决这个问题,但是在网上搜索之后,我没有找到实现线程池的解决方案。
以下是代码的简化版本:
以下是错误消息:
scikit-learn - BayesSearchCV 参数
我刚读过Bayesian optimization
,我想试试。
我安装scikit-optimize
并检查了 API,我很困惑:
我读到贝叶斯优化从一些初始化样本开始。
- 我看不到在哪里可以更改此号码?(
BayesSearchCV
) n_points
将更改参数设置的数量以并行采样并且n_iter
是迭代次数(如果我没记错迭代不能并行运行,算法会在每次迭代后改进参数)
- 我看不到在哪里可以更改此号码?(
我读到我们可以使用不同的采集功能。我看不到在哪里可以更改采集功能
BayesSearchCV
?
optimization - 什么是 kappa 变量(贝叶斯优化)
我阅读了一些关于变量的帖子和教程BayesianOptimization
,但从未见过关于kappa
变量的解释。
kappa
变量是什么?- 它对我们有什么帮助?
- 这些值如何影响
BayesianOptimization
过程?
python - scikit-optimize 中的 cv_results_ 和 best_score_ 的测试分数是如何计算的?
我正在使用BayesSearchCV
fromscikit-optimize
来优化XGBoost
模型以适应我拥有的一些数据。虽然模型很合适,但我对诊断信息中提供的分数感到困惑,无法复制它们。
这是一个使用波士顿房价数据集的示例脚本来说明我的观点:
运行后, xgb_cv.best_score_
为 0.816,xgb_cv.best_index_
为 3。查看 xgb_cv.cv_results_,我想找到每个折叠的最佳分数:
这使:
我不确定这里计算的是什么,因为在我的代码scoring
中设置为。None
XGBoost 的文档没有太大帮助,但根据xgb_cv.best_estimator_.score?
它应该是预测值的 R2。无论如何,当我手动尝试计算拟合中使用的数据的每个折叠的分数时,我无法获得这些值:
这给了我以下信息:
BayesSearchCV 如何计算每个折叠的分数,为什么我不能使用该score
函数复制它们?对于此问题的任何帮助,我将不胜感激。
(此外,手动计算这些分数的平均值给出:0.8156560 ...,而xgb_cv.best_score_
给出:0.8159277 ...不知道为什么这里有精度差异。)