Я пытаюсь выполнить оптимизацию гиперпараматора SVM с помощью GridSearchCV.Предположим, я снабжаю эту функцию данными и метками обучающего набора (разделение теста уже изолировано перед вызовом функции).
def param_search(X, y):
Cs = 10. ** np.arange(-3, 4)
gammas = 10. ** np.arange(-3, 3)
rbf_grid = {'clf__C':Cs, 'clf__gamma':gammas, 'clf__kernel':['rbf'],
'clf__class_weight':['balanced']}
lin_grid = {'clf__C':Cs, 'clf__kernel':['linear'],
'clf__class_weight':['balanced']}
pipe = Pipeline([('scaler', StandardScaler()), ('clf', svm.SVC())])
grid_search = GridSearchCV(pipe, param_grid=[rbf_grid, lin_grid],
cv=StratifiedKFold(n_splits=5, shuffle=True), verbose=2, n_jobs=-1)
grid_search.fit(X,y)
return grid_search.best_params_
Я хочу, чтобы GridSearchCV оценивал каждое разделение резюме с данными, масштабированными по обучению, рассчитанному для этого конкретногоТрещина.Функция StandardScaler () в настоящее время вызывается 5 раз для каждого набора параметров (что я и хочу)?Или только один раз при первом вызове GridSearchCV.