В приведенном вами примере я бы добавил дополнительный шаг, используя sklearn.model_selection.train_test_split
:
folds = 4
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=(1/folds), random_state=0, stratify=y)
scalar = StandardScaler()
clf = svm.LinearSVC()
pipeline = Pipeline([('transformer', scalar), ('estimator', clf)])
cv = KFold(n_splits=(folds - 1))
scores = cross_val_score(pipeline, X_train, y_train, cv = cv)
Я думаю, что лучше всего использовать только набор обучающих данных (т.е. X_train, y_train
) при настройке гиперпараметры вашей модели и набор тестовых данных (например, X_test, y_test
) следует использовать в качестве окончательной проверки, чтобы убедиться, что ваша модель не смещена в сторону складок проверки. В этот момент вы примените тот же scaler
, который вы поместите в свой набор данных обучения, к набору данных тестирования.