Разбор
Нормализация и стандартизация признаков: в чём разница
Различаем стандартизацию столбцов, изменение диапазона и нормирование векторов. На простых числах проверяем, что происходит с новыми значениями.
Под словом «нормализация» иногда понимают разные преобразования: приведение чисел к диапазону, изменение длины вектора или вообще любую подготовку масштаба. Для рабочего проекта лучше называть конкретную операцию и её параметры.
Стандартизация обычно означает вычитание среднего и деление на стандартное отклонение признака. Такая операция отличается и от приведения к диапазону, и от нормирования отдельного объекта по длине.
Стандартизация на двух числах
Для учебного столбца со значениями 10 и 30 среднее равно 20. Если стандартное отклонение вычислено с делением на число наблюдений, оно равно 10. После преобразования получаются -1 и 1.
В реализации StandardScaler scikit-learn среднее и масштаб запоминаются при обучении преобразования. Новое значение 50 при тех же параметрах станет 3. Оно не обязано оказаться между -1 и 1: стандартизация не ограничивает диапазон заранее.
Два наблюдения здесь нужны только для демонстрации арифметики. Такой пример не показывает, что масштабы реального процесса надёжно оценены по двум строкам.
Приведение к диапазону работает иначе
При обычном min-max-преобразовании обучающие минимум и максимум задают границы выбранного диапазона. Для значений 10 и 30 диапазон от нуля до единицы даёт соответственно 0 и 1.
Если применить ту же линейную формулу к новому значению 50, получится 2. Обрезка значений до границ - отдельное поведение, которое зависит от настроек. Поэтому обещание «после обработки всё всегда будет от нуля до единицы» требует уточнения.
Сильный выброс способен заметно изменить обучающие минимум и максимум. Перед выбором преобразования стоит изучить распределение и происхождение необычных значений.
Нормирование вектора меняет другую величину
Для объекта с двумя координатами 3 и 4 евклидова длина равна 5. Деление обеих координат на длину даёт 0,6 и 0,8. Теперь длина вектора равна единице.
Здесь преобразуется весь объект относительно его собственного масштаба. При стандартизации столбца используются характеристики признака по обучающим объектам. Эти операции решают разные задачи и не подменяют друг друга.
Чтобы избежать путаницы, в описании эксперимента записывайте формулу или точный класс преобразования, а не только слово «нормализовали».
Когда масштаб влияет на модель
Методы, использующие расстояния, скалярные произведения или штрафы на коэффициенты, могут заметно реагировать на соотношение масштабов. Для них сумма в рублях и сумма в тысячах рублей способны дать разное поведение без согласованной подготовки.
Влияние зависит от конкретного алгоритма. Применять одинаковый набор преобразований ко всем моделям автоматически не требуется. Полезнее проверить, что нужно выбранному методу, и сравнить варианты на одной процедуре оценки.
Важен и смысл поля. Цифровой код склада не превращается в количественный признак после масштабирования. Для категорий сначала определяется подходящий способ представления.
Как сохранить честную проверку
Вычисляйте параметры преобразования по обучающей части. Затем применяйте те же параметры к проверочным и рабочим данным. Подстройка среднего или диапазона по тестовой таблице нарушает независимость сравнения.
Храните преобразование вместе с моделью и проверяйте новые категории, пропуски и необычные значения. Более широкий порядок подготовки таблицы разобран в статье о предобработке данных.
Есть вопрос по теме?
Разберу вашу ситуацию и предложу конкретный шаг
Источники
Читайте также
Канал «Лёха Маркетолог»
Практика без воды: кейсы, инсайты, разборы. 1–2 поста в неделю.
Пока без комментариев. Будьте первым.