Шкалирование признаков (Feature Scaling)
Шкалирование признаков — это процедура преобразования исходных значений признаков в набор данных таким образом, чтобы они находились в определённом, заранее заданном диапазоне или обладали определёнными статистическими свойствами (например, нулевым средним и единичной дисперсией) в контексте машинного обучения и нейросетей.
Шкалирование (или нормализация/стандартизация) признаков — критически важный этап предобработки данных перед обучением моделей машинного обучения, включая нейронные сети. Без него алгоритмы могут работать неэффективно или вовсе не сходиться: признаки с большим диапазоном значений будут непропорционально влиять на обучение, «забивая» вклад признаков с меньшим диапазоном.
Представьте, что вы готовите блюдо по рецепту, где ингредиенты указаны в разных единицах: граммы, килограммы, миллилитры. Если не привести всё к одной единице измерения (например, к граммам), вы легко ошибётесь с пропорциями — и блюдо получится несъедобным. Шкалирование признаков выполняет аналогичную функцию: приводит все «ингредиенты» (признаки) к единому масштабу, чтобы модель могла корректно «приготовить» прогноз.
Исторический контекст
Необходимость масштабирования признаков осознавалась с самых ранних этапов развития машинного обучения. Уже в классических работах по линейной регрессии и методам градиентного спуска отмечалось, что скорость сходимости и качество решения сильно зависят от масштаба входных данных. С развитием нейросетей и глубоких архитектур эта проблема стала ещё более актуальной: глубокие сети особенно чувствительны к масштабу входных данных, и без корректного шкалирования обучение может стать крайне медленным или вообще не сойтись.
Смежные понятия и различия
- Нормализация — частный случай шкалирования, при котором значения признаков приводятся к диапазону [0, 1] (или [−1, 1]).
- Стандартизация — другой распространённый метод шкалирования, при котором признаки преобразуются так, чтобы иметь нулевое среднее и единичную дисперсию (среднеквадратичное отклонение).
Ключевое различие между ними — в цели и получаемом распределении. Нормализация ориентирована на приведение к фиксированному диапазону, стандартизация — на приведение к стандартному нормальному распределению (по параметрам). Выбор метода зависит от задачи и алгоритма: например, для нейросетей часто предпочтительна стандартизация, тогда как для алгоритмов, чувствительных к выбросам (например, k‑ближайших соседей), может быть уместна нормализация.
Примеры использования
- В свёрточных нейронных сетях (CNN) для обработки изображений часто применяют стандартизацию входных пикселей: вычитают среднее значение по датасету и делят на стандартное отклонение.
- В задачах табличных данных (например, с использованием градиентного бустинга или полносвязных сетей) нормализация или стандартизация признаков — обязательный этап предобработки.
- Библиотеки типа scikit‑learn предоставляют готовые инструменты:
StandardScaler(стандартизация) иMinMaxScaler(нормализация). В фреймворках глубокого обучения (PyTorch, TensorFlow/Keras) аналогичные операции легко реализуются вручную или через встроенные модули предобработки.
