Нормализацией данных часто называют любое приведение чисел к удобному масштабу. В машинном обучении этот термин имеет более точное значение: нормализация обычно изменяет длину каждого отдельного вектора, а масштабирование и стандартизация преобразуют признаки — столбцы таблицы. Различие важно, потому что эти операции решают разные задачи.
Например, перевод температуры из градусов Цельсия в Фаренгейты является преобразованием единиц измерения, а расчёт показателя на душу населения — относительным показателем. Обе операции могут помочь сравнению, но сами по себе не являются нормализацией в том значении, которое используют библиотеки машинного обучения.

Зачем масштабировать числовые признаки
Представим таблицу с двумя признаками автомобиля: ценой в гривнах и расходом топлива в литрах на 100 километров. Числа в первом столбце могут измеряться сотнями тысяч, а во втором — единицами. Для алгоритмов, использующих расстояния, градиенты или штрафы за большие коэффициенты, признак с более широким числовым диапазоном может непропорционально влиять на результат.
Это касается, в частности, метода ближайших соседей, кластеризации k-means, многих линейных моделей и нейронных сетей. Деревья решений и модели на их основе обычно гораздо меньше зависят от масштаба, поскольку сравнивают значения с порогами. Следовательно, масштабирование не обязательно для каждой модели: выбор зависит от алгоритма, распределения данных и цели анализа.
Min-max scaling: диапазон от 0 до 1
Min-max scaling переносит значения признака в заданный диапазон, чаще всего от 0 до 1. Из каждого значения вычитают минимум обучающей выборки и делят результат на разницу между максимумом и минимумом:
x′ = (x − min) / (max − min)
Если возраст клиентов в обучающих данных меняется от 20 до 60 лет, то 20 преобразуется в 0, 40 — в 0,5, а 60 — в 1. Порядок значений сохранится. Однако метод чувствителен к крайним значениям: один очень большой показатель может сжать большинство наблюдений в узкую часть шкалы. Новые значения, выходящие за обучающий минимум или максимум, без дополнительного ограничения могут преобразоваться в числа меньше 0 или больше 1.

Стандартизация: среднее 0 и стандартное отклонение 1
При стандартизации, которую также называют z-score scaling, из значения вычитают среднее и делят результат на стандартное отклонение:
z = (x − μ) / σ
После этого среднее значение обучающего признака равно примерно 0, а стандартное отклонение — 1. Такой результат не ограничен диапазоном от 0 до 1: значения могут быть отрицательными или значительно превышать единицу.
Обычная стандартизация не устойчива к выбросам, поскольку среднее и стандартное отклонение сами зависят от крайних наблюдений. Если выбросы реальны и их нельзя исправить или удалить, стоит рассмотреть робастное масштабирование. Например, RobustScaler в scikit-learn использует медиану и межквартильный размах. Это уменьшает влияние крайних значений, но не делает любой набор данных автоматически корректным.

Нормализация вектора до единичной нормы
В узком значении нормализация изменяет каждую строку данных так, чтобы длина её вектора была равна 1. Например, для L2-нормы каждый компонент делят на квадратный корень из суммы квадратов всех компонентов строки. В отличие от StandardScaler или MinMaxScaler, эта операция выполняется для каждого объекта отдельно и не использует среднее или диапазон столбца.
Такой подход часто применяют к текстовым векторам. Если два TF-IDF-вектора нормализованы по L2-норме, их скалярное произведение соответствует косинусному сходству. Это позволяет сравнивать направление векторов, уменьшая влияние их общей длины. Именно так описывает операцию Normalizer в документации scikit-learn.
Рейтинги и индексы: масштабирование не определяет веса
В рейтингах показатели часто приводят к общей шкале перед объединением. Но математическое преобразование не решает методологических вопросов. Сначала нужно определить направление: для дохода больше может означать лучший результат, а для уровня безработицы — худший. Затем автор рейтинга выбирает веса, правила работы с пропусками и способ обработки выбросов.
Нормализованные числа не делают эти решения объективными. Две методики с одинаковыми исходными данными могут дать разные места из-за разных весов или границ шкалы. Поэтому качественный рейтинг должен объяснять источник, период, формулу, направление каждого показателя и способ агрегации.
Типичные ошибки
- Смешение понятий. Конвертация единиц, расчёт доли, стандартизация и нормализация по норме не взаимозаменяемы.
- Обучение преобразования на всём наборе. Минимум, максимум, среднее и другие параметры нужно вычислять только на обучающей части, а затем без изменений применять к валидационным, тестовым и новым данным. Иначе возникает утечка данных.
- Игнорирование выбросов. Min-max и обычное z-score масштабирование могут заметно меняться из-за крайних значений.
- Механическое кодирование категорий. Числа 1, 2 и 3 для названий городов или цветов создают искусственный порядок. Для номинальных категорий обычно требуется другое кодирование, а масштабирование такого кода не исправляет проблему.
- Масштабирование без проверки модели. Преобразование стоит включить в единый воспроизводимый конвейер и оценить на корректной валидации.
Как выбрать метод
Сначала проверьте единицы, пропуски, дубликаты, ошибки ввода и распределение признаков. Затем определите, что требуется конкретному алгоритму. Если важен фиксированный диапазон, проверьте min-max scaling; если нужны центрированные признаки с сопоставимым разбросом — стандартизацию; если мешают выбросы — робастный вариант; если сравниваются направления текстовых или других векторов — нормализацию по норме.

Главное правило: метод определяет задача, а не привычка. Масштабирование помогает алгоритму работать с числовыми признаками, но не исправляет плохие данные, неудачную метрику или субъективную методологию рейтинга.








