Как использовать перекрестную проверку после вменения в набор для обучения и проверки?

Так что я немного запутался.

На данный момент у меня есть набор данных примерно из 800 экземпляров. Я разделил его на набор для обучения и проверки, потому что отсутствовали значения, поэтому я использовал SimpleImputer из sklearn и fit_transform-ed для обучающего набора и преобразовал набор для тестирования. Я сделал это, потому что, если я хочу спрогнозировать новые экземпляры, если есть пропущенные значения, мне нужно будет вменять это так же, как я вменял набор тестов.

Теперь я хочу использовать перекрестную проверку для обучения и оценки моделей, но это потребует использования всего набора данных и разделения его на разные наборы для обучения и тестирования, поэтому я беспокоюсь об утечке из обучающего набора из-за того, что вмененные значения будут подогнан?


person Alexia M    schedule 18.12.2018    source источник


Ответы (1)


Как правило, вам нужно разделить свои данные на три набора - набор для обучения, набор для тестирования и набор для проверки. Набор для тестирования должен быть полностью исключен из обучения (ваше беспокойство верно). При использовании перекрестной проверки вам не нужно беспокоиться о разделении набора для обучения и проверки - это то, что перекрестная проверка делает для вас! Просто передайте обучающий набор кросс-валидатору, позвольте ему разделиться на обучение и проверку за кулисами и протестируйте окончательную модель на своем наборе для тестирования (который полностью исключен из процесса обучения).

person Brandon Schabell    schedule 18.12.2018
comment
Но если я сделаю вменение перед запуском резюме, то информация из различных наборов проверки будет автоматически поступать в наборы для обучения. Я думаю, мне нужно будет снова выполнить вменение для каждой складки. Итак, если у меня есть 5-кратное резюме, у меня будет 5 наборов для обучения и проверки. Мне нужно будет вычислить значения вменения для каждого набора поездов и применить их к наборам проверки. Это правильно? - person Simon Hessner; 27.08.2020
comment
В идеале да, вы захотите вменять в каждой отдельной складке. Scikit-learn позволяет вам делать это с помощью конвейеров, чтобы вы могли складывать все свои препроцессоры, импьютеры и модели в свое резюме. - person user1903753; 01.12.2020