Я не могу ответить вам Да или Нет, поэтому позвольте мне начать с распределения данных по всем вашим наборам Train / Test / Dev. По словам профессора Андрея Нга, наборы Test и Dev должны быть из одного и того же дистрибутива ( Youtube ), но набор обучающих программ может быть из другого дистрибутива ( Проверьте здесь ), и часто это хорошая вещь. Иногда очистка обучающего набора очень полезна, а также применяется некоторая базовая операция c для ускорения процесса обучения (например, нормализация, которая не очищает), но мы говорим о данных обучения, которые могут и должны иметь тысячи тысяч примеров, поэтому иногда вы не можете проверить свои данные вручную и почистить их, потому что, возможно, они вообще не стоят; Что я имею в виду? Хорошо, позвольте мне показать вам пример:
Допустим, вы используете классификатор кошек (Cat или no-Cat), и у вас есть точность 90%, что означает, что у вас ошибка 10%. выполнив анализ ошибок ( проверьте его здесь ), вы обнаружите, что:
- 6% вашей ошибки вызвано изображениями с ошибками (изображения без кошек
помечены как кошка и наоборот). - 44% вызвано размытыми изображениями.
- 50% вызвано изображениями больших кошек, помеченных как кошки. в этом случае все время, которое вы потратите на исправление помеченных изображений, улучшит вашу производительность (0,6%) в лучшем случае (поскольку это 6% от общей ошибки 10%), поэтому ЭТО НЕ СТОИТ исправляя данные о метках.
Я привел пример данных с ошибками, но в целом я имею в виду любые виды очистки и исправления.
НО очистки данные в Набор тестов может быть проще, и это должно быть сделано для обоих наборов Test / Dev, если это возможно, потому что ваш набор тестов будет отражать производительность вашей системы на данных в реальном времени. Операции, которые вы упомянули в своем вопросе, не совсем чисты, но используются для ускорения процесса обучения или для того, чтобы сделать данные подходящими для алгоритма, и их применение зависит от формы и типа данных (изображений, голосовых записей, слов. .) и о проблеме, которую вы пытаетесь решить.
в конце В качестве ответа я могу вам сказать, что:
- форма и форма данных должны быть одинаковыми во всех трех наборах (поэтому применение кодирования меток должно применяться ко всем данным, а не только к обучающим данным, а также к входным данным, используемым для прогнозирования, поскольку они изменяют форму выходной метки).
- Количество функций должно быть одинаковым всегда.
- Любая операция, которая изменяет (форму, форму, количество элементов и т. Д.), Примененную к данным, должна применяться к каждому сэмплу, который вы собираетесь использовать в своей системе.