问题标签 [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 回答
59 浏览

python - 在 python 中拆分数据,使每个主题都保持一个折叠(m 折叠交叉验证)

所以这就是事情。我正在为 5 名患者(P1、P2、...P5)应用二元分类器。每个患者有 100 个数据样本,输出为 0 或 1。

因此,我将一名患者(例如 P5​​)放在一边作为测试数据,并将其余患者用于验证和训练。但我还想为分类器(比如 SVM)找到最佳的超参数数量,所以我也为此使用了 4 折交叉验证。

但是,我想确保将训练数据拆分为 cross_training 和 cross_testing,以便一名患者的所有样本都保留在 cross_testing 折叠中。我不希望它被打乱,因为我会在测试和训练折叠中都有患者的数据,这不好。

我在 python 中使用 GridSearchCV 来拆分数据,但我不知道如何自定义它,以便我们将拥有:100 个 p1 样本在测试折叠中,所有 300 个 p2、p3、p4 样本在训练折叠中..... ..... 测试折叠中的 100 个 p4 样本和训练折叠中的所有 300 个 p1、p2、p3 样本。

换句话说,我想创建一个患者指标,以便 gridasearchCv 根据该指标拆分数据。

我们是否有一个包,或者我应该尝试在不使用 GridSearchCV 或任何类似性质的情况下手动编写它?

0 投票
0 回答
310 浏览

python-3.6 - randomSearchCv/gridSearchCv 冻结 n_jobs>1

如果我在 nJobs>1 的情况下使用 gridSearchCv,我的代码似乎会冻结:进程仍在运行但不使用 CPU,它们似乎正在等待。我不知道如何解决这个问题,请帮助我。

0 投票
0 回答
2648 浏览

python - OSError:[Errno 28] 设备上没有剩余空间

当我在某个时候使用 gridSearch 或 randomSearch 运行 python 程序时出现此错误,这是什么意思以及如何解决?有很多磁盘空间,32GB 内存,我不知道这是怎么发生的。

0 投票
0 回答
643 浏览

python - 在不平衡数据集中使用网格搜索进行随机欠采样的调整率

正如标题所建议的那样,我想对我的随机采样器的比率进行网格搜索。我想尝试比率 10、15 和 20,其中比率 = 10 是重采样多数类的数量/少数类的数量。

示例:如果少数类有 10 个元素,多数 1000,比率为 5,我将有 10 个少数和 50 个多数。这就是 Random Under Sampler 文档的建议。

https://imbalanced-learn.readthedocs.io/en/stable/generated/imblearn.under_sampling.RandomUnderSampler.html

我收到此错误:

有人可以帮助我吗?谢谢。

0 投票
1 回答
101 浏览

python - 在 CV 期间使用 GridSearchCV 在内部缩放训练数据以进行超参数优化

我正在尝试使用 GridSearchCV 进行 SVM 超参数优化。假设我正在为这个函数提供训练集数据和标签(在函数调用之前已经隔离了测试拆分)。

我希望 GridSearchCV 使用为该特定拆分计算的训练缩放的数据来评估每个 CV 拆分。StandardScaler() 函数当前是否为每组参数调用 5 次(这是我想要的)?或者在第一次调用 GridSearchCV 时只调用一次。

0 投票
1 回答
664 浏览

python - sklearn 管道:在 GridSearchCV 中应用 TimeSeriesSplit 之前,在完整的训练集上运行 TfidfVectorizer?

我确定这是可能的,但我无法弄清楚。TimeSeriesSplit使用with给出一个训练数据集num_split=5,拆分如下所示:

问题在于前几遍,TfidfVectorizer正在使用名义数量的词汇/特征,我想在拆分之前在整个训练集上运行它,以便所有拆分的特征大小保持相同。

然而,除此之外,有没有人知道在使用TimeSeriesSplit时只通过系列中的最后两个拆分的方法?因此,而不是所有 5 个拆分,GridSearchCV只使用这两个:

这将允许更好的矢量化拟合,即使它在通过之间不会相同 - 至少它在验证之前有更大的部分可以使用。

谢谢。

编辑:

我使用的管道本质上是 TfidfVectorizer,然后是分类器。但是对数据和特征进行一些检查,看起来数据集在被馈送到 TfidVectorizer() 之前被分割了。这是粗略的笔触:

0 投票
0 回答
68 浏览

python - 流水线中 OneVsRestClassifier 的自定义评分功能

我试图为 OneVsRestClassifier 创建自己的评分函数,但我面临一些问题。

这里 train_X 和 train_y 是 pandas DataFrames,其中 train_X 只有 1 列(包含文本数据),而 train_y 有 27 个二进制列(27 个不同的类) 我的评分函数定义如下。我注意到预测的输出是一个 np.array。

使用上面的评分函数,我的 GridSearchCV 拟合似乎卡住了。如果没有我的额外评分参数,它就可以正常工作。任何人都可以帮助我使用正确的格式来为这种情况使用自定义评分功能吗?

0 投票
1 回答
1502 浏览

python - 从 gridsearchcv 中提取结果

我刚刚完成了基于树的建模的 gridsearch CV,在查看结果后,我设法从 gridsearchCV 访问了每次迭代的结果。

我需要每个运行到一个单独的行中,每个参数在一个单独的列中。我可以运行循环或列表理解来为每一行运行,但无法将每个运行分成列

我尝试使用 tuple 和 dict 附件,但最终出错。本质上,我需要新列中的每个参数,如下所示。

0 投票
1 回答
514 浏览

python - GridsearchCV 异常

我正在尝试GridsearchCV,但我想在param grid. 这是我的网格搜索代码:

当我运行他的代码时,即使KerasClassifier有参数epochs=10,网格也不会运行 10 个 epoch,而是运行[50, 100, 200]我在网格中提供的。就像epochs=10被覆盖了一样。

现在我想做的是,我想activation functions在第一层使用不同的,但保留Sigmoid在输出层。我担心的是,参数会被来自网格的activation='sigmoid'参数覆盖吗?activation = ['softmax', 'softplus', 'softsign', 'relu', 'tanh', 'sigmoid', 'hard_sigmoid', 'linear']

我希望这对你更有意义。

0 投票
1 回答
907 浏览

python - AttributeError:“切片”对象没有属性“标志”错误

我试图在GridSearchCv没有交叉验证的情况下使用,因为我有一组单独的验证。我发现这个解决方案建议我应该使用cv=[(slice(None), slice(None))]cv 参数的代码并且它可以工作。但是这段代码在我同事的 PyCharm 编辑器中失败了。这是错误:AttributeError: 'slice' object has no attribute 'flags'

这是完整的错误堆栈:

我该如何解决这个问题?