Я делаю проект по проблеме идентификации автора. Я применил нормализацию tf-idf для обучения данных, а затем обучил SVM на этих данных.
Теперь при использовании классификатора я должен также нормализовать тестовые данные. Я чувствую, что основная цель нормализации - сделать так, чтобы обучающий алгоритм придавал больший вес более важным функциям во время обучения. Поэтому, когда он обучен, он уже знает, какие функции важны, а какие нет. Так есть ли необходимость в применении нормализации для проверки данных?
Я новичок в этой области. Поэтому, пожалуйста, игнорируйте, если вопрос кажется глупым?
machine-learning
neural-network
deep-learning
Кишан Кумар
источник
источник
Ответы:
Да, вам необходимо применить нормализацию к тестовым данным, если ваш алгоритм работает с нормализованными данными обучения или нуждается в них *.
Это потому, что ваша модель работает с представлением, данным ее входными векторами. Шкала этих чисел является частью представления. Это немного похоже на пересчет между футами и метрами. , , модель или формула будет нормально работать только с одним типом единиц.
Вам требуется не только нормализация, но вы должны применять точно такое же масштабирование, что и для ваших тренировочных данных. Это означает сохранение масштаба и смещения, используемых с вашими тренировочными данными, и повторное использование. Распространенная ошибка новичка состоит в том, чтобы отдельно нормализовать данные вашего поезда и теста.
В Python и SKLearn вы можете нормализовать ваши значения input / X, используя Standard Scaler, например:
Обратите внимание на то, как преобразование
train_X
использования функции, которая подходит (вычисляет параметры), затем нормализуется. Хотяtest_X
преобразование просто трансформируется, используя те же параметры, которые были получены из данных поезда.Применяемая нормализация tf-idf должна работать аналогично, так как она учитывает некоторые параметры из набора данных в целом (частота слов во всех документах), а также использует соотношения, найденные в каждом документе.
* Некоторые алгоритмы (например, основанные на деревьях решений) не нуждаются в нормализованных входных данных и могут справляться с функциями, имеющими различные внутренние масштабы.
источник
Определенно вы должны нормализовать свои данные. Вы нормализуете данные для следующих целей:
Для разных функций в одном масштабе, что ускоряет процесс обучения.
Забота о различных функциях справедливо, не заботясь о масштабе.
После обучения ваш алгоритм обучения научился работать с данными в масштабированном виде, поэтому вам необходимо нормализовать данные теста с нормализующими параметрами, используемыми для данных обучения.
источник