如何使用Sklearn并行执行嵌套交叉验证?嵌套n_jobs不起作用

时间:2019-05-21 19:17:47

标签: parallel-processing scikit-learn cross-validation

当两个n_jobs都设置为-1时,无法在SKlearn中执行并行嵌套交叉验证。

关于如何使用sklearn执行nested_validation,请参见以下内容。 https://scikit-learn.org/stable/auto_examples/model_selection/plot_nested_cross_validation_iris.html

当您尝试执行嵌套CV时,总是会出现错误。我得到的最新错误是:

sklearn.exceptions.NotFittedError: This Ridge instance is not fitted yet. Call 'fit' with appropriate arguments before using this method.

这基本上表明管道正在尝试预测何时未安装管道。

但是,如果您尝试不使用嵌套cv实现而仅将网格搜索对象设置为n_jobs = -1的代码,则一切正常。另外,嵌套的CV在不并行且n_jobs = 1时也可以工作。是否可以使用Sklearn并行运行嵌套的CV?

要描述运行嵌套CV的过程,请参见此处。 首先,您需要将内部gridsearch cv对象设置如下:

grid = gridsearchCV(pipeline, param_grid = params, n_jobs = -1, cv = my_cv)

则外部简历为:

results = cross_validate(grid, n_jobs = -1, cv = my_cv)

0 个答案:

没有答案