Предварительная обработка на GridsearchCV - PullRequest
1 голос
/ 15 апреля 2019

Я использую GridsearchCV для настройки гиперпараметров, и теперь я хочу сделать min-max Normalization(StandardScaler()) на этапе обучения и проверки. Но я думаю, что не могу этого сделать.

Вопрос:

  1. Если я применяю шаг предварительной обработки ко всему обучающему набору и отправляю его в GridsearchCV для выполнения 10 кратных CV. Это приведет меня к утечке данных, верно? потому что тренировочный набор будет проходить 10 раз, это означает, что 9 раз для поезда и 1 раза для тестового раза. Нормализация должна применяться только к обучающему набору, а не к набору проверочных прав?
  2. Если я использую конвейер sklearn, это не решит эту проблему, верно? потому что он запускается только один раз и снова приводит к утечке данных.
  3. Есть ли другой способ сделать это и по-прежнему использовать GridsearchCV для настройки параметров

1 Ответ

0 голосов
/ 15 апреля 2019

Действительно, это приведет к утечке данных, очень хорошо, что вы ее уловили!

Решение этой проблемы с использованием конвейера - это создать конвейер с помощью StandardScaler в качестве первой операции в конвейере, изатем ваш Классификатор выбора и в конечном итоге передать этот конвейер в GridSearchCV

clf = make_pipeline(StandardScaler(), 
                    MyClassifier())
grid_search = GridSearchCV(clf, refit=True)

Для получения дополнительной информации, проверьте эту статью здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...