问题标签 [gridsearchcv]

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 回答
703 浏览

python - sklearn 中的 GridSearchCV 是否使用整个数据集训练模型?

我知道这GridSearchCV将通过使用 k-fold cv 找到“最佳”超参数。但是在找到那些超参数之后,是否会GridSearchCV用整个数据集再次训练模型以获得可训练的参数?或者它只用产生最佳超参数的折叠训练模型?

0 投票
1 回答
2317 浏览

python - 如何在 python 中的 sklearn 中获取 GridSearchCV 中的选定功能

我将recurive feature elimination with cross validation (rfecv)其用作特征选择技术GridSearchCV

我的代码如下。

现在,我想从上面的代码中获取optimal number of featuresand 。selected features

为此,我运行了以下代码。

但是,我收到以下错误: AttributeError: 'RFECV' object has no attribute 'n_features_'.

有没有其他方法可以获取这些详细信息?

如果需要,我很乐意提供更多详细信息。

0 投票
1 回答
1462 浏览

python - GridsearchCV 上的预处理

我正在使用GridsearchCV调整超参数,现在我想Normalization(StandardScaler())在训练和验证步骤中做一个 min-max。但我认为我不能这样做。

问题是 :

  1. 如果我对整个训练集应用预处理步骤并将其发送到 GridsearchCV 进行 10 foldCV。这会导致我数据泄露,对吧?因为训练集将运行 10 折,这意味着训练 9 折和测试折 1 折。标准化应该只适用于训练集而不是验证集,对吗?
  2. 如果我使用 sklearn 的 Pipeline 它不会解决这个问题吗?因为它只运行一次并导致我再次泄漏数据。
  3. 有没有其他方法可以做到这一点并且仍然使用GridsearchCV来调整参数
0 投票
1 回答
41 浏览

machine-learning - sklearn中的GridSearchCV如何选择交叉验证集?

我多次运行此代码,但结果是相同的。GridSearchCV 是否选择相同的交叉验证集(不是随机选择)?

0 投票
2 回答
409 浏览

python - 通过 GridSearchCV 测试的仅一类折叠

在作为 SVC 包装器的自定义估计器上使用 GridSearchCV 时,我收到错误消息:“ValueError: The number of classes have to be greater than one; got 1 class”

自定义估算器用于将网格搜索参数添加到估算器中,并且似乎工作正常。

使用调试器,我发现确实给我的估计器提供了一个只有一类的训练集,所以出现了两种可能性:

  • 估计器应该处理仅一类集

  • GridSearchCV 不应该只给出一个类集

当我从 SVC.fit 调用中得到一个错误,并且 SVC 似乎不应该接收仅一类集合时,我认为这是第二个选项。但是,我查看了 GridSearchCV 实现,但没有找到任何地方可以检查是否存在仅一类折叠或为什么会失败...

我在交叉验证中使用了网格搜索来进行嵌套交叉验证:

0 投票
0 回答
125 浏览

python - GridSearchCV 的所有可能的可调参数是什么?(对于 param_grid)

我用 keras 构建了一个人工神经网络,并使用了 GridSearchCV,以便尝试不同的参数,看看哪种组合能给我带来最好的结果。

我想知道,我们通过Dense-module在图层中定义的所有参数是否可以在GridSearchCV中网格化?我确定三个参数“batch_size”、“epochs”和“optimizer”。但是我尝试了激活功能,两天后我的电脑没有完成网格搜索!所以我停止了它,现在我正在寻找关于这个问题的答案。

最后几行的代码如下:

所以我的问题:是否可以像上面对 batch_size 和 epochs 那样提供不同的激活函数和内核初始化器?或者在不同的激活函数之间改变不是一个好主意,因为它每次都会改变神经网络的结构?例如像这样:

提前非常感谢:)

0 投票
2 回答
14371 浏览

memory-leaks - 使用 gridsearchcv 的内存泄漏

问题:我的情况似乎是在运行 gridsearchcv 时出现内存泄漏。当我使用 1 或 32 个并发工作人员 (n_jobs=-1) 运行时,就会发生这种情况。以前我在 ubuntu 16.04 上运行了很多次,但最近升级到 18.04 并进行了 ram 升级。

返回: UserWarning:当一些工作被分配给执行者时,一个工人停止了。这可能是由于工作人员超时时间过短或内存泄漏造成的。“超时或内存泄漏。”,用户警告

或者

TerminatedWorkerError:执行器管理的工作进程意外终止。这可能是由于调用函数时出现分段错误或内存使用过多导致操作系统杀死工作人员造成的。工人的退出代码是 {SIGKILL(-9)}

0 投票
2 回答
2358 浏览

python-3.x - Gridsearchcv 与贝叶斯优化

Gridsearchcv 和贝叶斯优化中哪一个更适合优化超参数?

0 投票
1 回答
209 浏览

python - 如何更改 GridSearchCV.best_estimator_ 的 n_jobs 参数

我正在运行 GridSearchCV,其中基本估计器是 RandomForestRegressor。我发现在估计器和网格搜索之间拆分处理器效率更高,因此在机器的 24 个可用处理器中,我将 n_jobs=4 分配给回归器,将 n_jobs=6 分配给网格搜索。

但是,一旦我有了最好的估算器,我想简单地使用它(GridSearchCV.best_estimator_),并进行一项更改 - 现在我想给它全部 24 个处理器,以便在我使用它来拟合新数据时使用它。有没有办法只更改这个参数,或者我是否需要手动指定估算器的所有最佳参数才能进行此更改?不确定实际代码对此是否有帮助,但这里有一些示例代码以防万一:

我希望最好使用所有处理器,即 n_jobs=24。但它从原始估计器继承了 n_jobs=4。有什么方法可以在不重新指定所有参数的情况下仅更改此参数?

这是我在这里的第一个问题,所以请让我知道是否有任何明显的地方我遗漏了以使这个问题成为一个明智的问题。

0 投票
0 回答
2624 浏览

python - 如何在 LSTM 模型上使用 GridSearchCV?

我不确定如何使用 GridSearchCV 来优化 LSTM 模型。我浏览了本教程“ https://machinelearningmastery.com/grid-search-hyperparameters-deep-learning-models-python-keras/ ”;但是,他们分开做事。我也不确定他们是如何获得结果的,因为他们似乎没有在教程中比较测试和训练。该模型正在运行附加图像),但我正在努力使其变得更好。在我的代码中显示“网格搜索”的地方是我迷失了如何继续的地方。欢迎任何帮助或提示。

[股票预测][1]