当两个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)