Если я запускаю поиск по сетке по нескольким ядрам, а объект сплиттера CV, предоставленный для GridSearchCV
, имеет shuffle=True
, а аргумент random_state
установлен на некоторое целое число, гарантируется ли, что перекрестная проверка расщепляется, используемая поиск по сетке на каждом из отдельных ядер будет одинаковым?
Вот пример:
from sklearn.datasets import load_iris
from sklearn.svm import SVC
from sklearn.model_selection import GridSearchCV, KFold
iris = load_iris()
param_grid = {
'kernel': ['linear', 'polynomial', 'rbf'],
'C': np.logspace(-4, 5, 10)
}
cv = KFold(n_splits=5, shuffle=True, random_state=42)
clf = GridSearchCV(SVC(), param_grid=param_grid, cv=cv, n_jobs=10)
clf.fit(iris.data, iris.target)
Итак, в этом случае я распределяю поиск по сетке по 10 ядрам. Я хочу быть уверен, что каждая модель в сетке параметров оценивается с использованием точно такого же разделения перекрестной проверки. Гарантируется ли это при распределении задания поиска по сетке по нескольким ядрам?