Словарь ИИ
Что такое нормализация данных
Коротко
Нормализация данных это приведение числовых признаков к сопоставимому масштабу, например к отрезку от нуля до единицы, чтобы ни один из них не перевешивал остальные только из-за единиц измерения.
Машинное обучение · normalization
Михаил МозгПроверено: 1 минута чтения
Ребенку
Вася измерил рост друзей в сантиметрах, а Петя в метрах. У Васи получились большие числа вроде ста тридцати, у Пети маленькие вроде одного и трех десятых. Если просто сложить такие записи, выйдет путаница. Сначала надо перевести все в одни единицы. Компьютер перед учебой тоже приводит числа к одному виду, чтобы большие не заслоняли маленькие.
Простыми словами
В таблице о клиентах возраст измеряется десятками, а доход сотнями тысяч. Многие модели воспринимают число буквально: где больше цифр, тот признак и важнее. Чтобы этого не было, значения пересчитывают. Можно сжать каждый столбец в отрезок от нуля до единицы, где ноль означает минимум, а единица максимум. Можно вычесть среднее и разделить на разброс, тогда у всех столбцов среднее станет нулем. После такого пересчета возраст и доход говорят с моделью на равных. Похоже на сравнение цен в разных валютах: сначала все переводят в рубли, потом сравнивают.
Для бизнеса
Сама процедура стоит копейки, но ошибки в ней обходятся дорого. Типичная история: параметры пересчета посчитали по всем данным сразу, включая будущие месяцы, и на испытаниях модель выглядит сильнее, чем окажется в работе. Другая: при запуске к новым данным забыли применить тот же пересчет, что и при обучении, и прогнозы поехали. Выбросы, например одна сделка на миллиард, сжимают остальные значения в узкую полосу, поэтому для таких данных берут устойчивые методы. Деревьям решений и градиентному бустингу пересчет не нужен, а линейным моделям с регуляризацией и нейросетям он почти всегда нужен. При приемке попросите показать, что он входит в единый конвейер обработки и хранится вместе с моделью. Готовность данных компании к таким моделям оценивают заранее, при подготовке данных для ИИ.
Для специалиста
Нормализация данных (feature scaling, normalization) это преобразование признаков к общему масштабу. Мин-макс нормализация (MinMaxScaler) линейно отображает признак в отрезок, по умолчанию [0, 1]; стандартизация (z-score, StandardScaler) вычитает среднее и делит на стандартное отклонение, давая нулевое среднее и единичную дисперсию; MaxAbsScaler делит на максимум модуля и сохраняет разреженность; RobustScaler опирается на устойчивые оценки центра и разброса и подходит для данных с выбросами. Отдельно стоит нормализация объектов (Normalizer): каждую строку приводят к единичной норме L1 или L2, что полезно для скалярного произведения и косинусного сходства текстовых векторов. Масштаб важен для SVM с RBF-ядром, для линейных моделей с регуляризацией L1 и L2 и для градиентного спуска, где разные масштабы вытягивают поверхность потерь и замедляют сходимость. Статистики считают только на обучающей выборке и встраивают преобразование в конвейер (Pipeline), чтобы исключить утечку. Внутри нейросетей похожую роль играют пакетная нормализация и нормализация слоя.
Не путать. Не путать с нормализацией баз данных, где так называют разбиение таблиц для устранения дублирования.
Пример
Модель прогноза оттока смотрит на стаж клиента в днях и сумму покупок в рублях. До пересчета она почти игнорировала стаж, потому что суммы были на порядки больше. После стандартизации оба признака стали влиять на прогноз, и модель начала замечать новичков, которые уходят после первой покупки.
Связанные термины
Вопросы и ответы
Чем нормализация отличается от стандартизации?
Когда масштабирование признаков не нужно?
Источники
Где это применяют в компании
Не уверены, нужно ли это вашей компании?
Карта ИИ-решений