如何在 GridSearchCV 中输入预定义的 k 折叠

Posted

技术标签:

【中文标题】如何在 GridSearchCV 中输入预定义的 k 折叠【英文标题】:How to feed predefined k-folds in GridSearchCV 【发布时间】:2018-08-07 02:38:02 【问题描述】:

我想使用 GridSearchCV 对我拥有的 10 个预定义的选定数据折叠进行参数调整和评估(作为数据索引列表的列表)。

有谁知道如何在 scikit 中为 GridSearchCV 提供 10 个预定义的测试折叠列表?

splits=[ [0,10,9,1,2,..] ,[3,5,7,..],[23,4,34,..]] #len(split)=10

greed_search = GridSearchCV(estimator, param_grid=parameters, cv=splits,scoring=scoring, refit=score, error_score=0, n_jobs=n_jobs)

【问题讨论】:

【参考方案1】:

我认为你需要像这样预处理你的折叠:

new_splits = []

for i in range(len(splits)):
    train = [j for i in splits[:i] + splits[i + 1:] for j in i]
    test = splits[i]
    new_splits.append([train, test])

不仅要获得可迭代的测试部分,还要训练部分

【讨论】:

以上是关于如何在 GridSearchCV 中输入预定义的 k 折叠的主要内容,如果未能解决你的问题,请参考以下文章

Gridsearchcv:内部逻辑

在 GridSearchCV 和 RandomizedSearchCV 中获取单个模型和自定义分数 [重复]

如何从 Scikit-Learn 的详细输出中估计 GridSearchCV 的进度?

sklearn GridsearchCV 结合流水线是如何工作的?

使用 GridSearchCV 制作自定义记分器

scikit 学习。 GridSearchCV 管道中的自定义 Transformer set_params 逻辑。