Что такое масштабирование?

Масштабирование — важный шаг в разработке функций при построении модели машинного обучения. Масштабирование приводит независимые функции в один масштаб, чтобы их можно было сравнивать и обучать более эффективно. Это также помогает избежать смещения в сторону функций, которые имеют более широкий диапазон значений.

Зачем нам нужно масштабирование?

Возьмем пример, есть 2 независимых признака — Возраст человека и годовой доход. Возраст может варьироваться от 0 до 99 лет, а зарплата может варьироваться от 40 000 до 300 000. Можем ли мы сравнить эти два по одной и той же величине? Алгоритмы машинного обучения обычно выполняют математические вычисления, такие как умножение и обращение матриц, для получения уравнений. Если признаки находятся в другом масштабе, уравнения могут стать нестабильными и иметь меньшую надежность.

Масштабирование для категорийных функций?

Реальные данные наполнены категориальными признаками, и важно использовать правильный подход к обработке категориальных признаков. Прежде чем использовать категориальный признак, мы кодируем его с помощью такого метода кодирования, как кодирование меток или однократное кодирование (и другие).

One-Hot Encoding создает новые функции на основе уникальных меток и присваивает каждой из них значения 0 и 1. Кодирование меток создает целочисленные значения для представления каждой метки в категориальном признаке.

Как только мы выберем правильный метод кодирования для категориальных признаков, имеет ли смысл выполнять их масштабирование? Ответ — это зависит от того, какой алгоритм мы используем.

Если мы используем алгоритм, основанный на расстоянии, нам необходимо выполнить масштабирование как категориальных, так и непрерывных данных. Алгоритм на основе расстояния использует расстояние между независимыми функциями для обучения модели наилучшего соответствия.

Примеры алгоритмов базы расстояний: алгоритм K-ближайших соседей (kNN), K-Mean, квантование обучающего вектора (LVQ)

Алгоритм на основе дерева не нуждается в масштабировании признаков, поскольку они не чувствительны к масштабу независимых признаков. Примеры древовидных алгоритмов: Дерево решений, случайный лес, экстремальное повышение градиента (XGBoost)

Вынос

Любой алгоритм, не основанный на расстоянии, не нуждается в масштабировании признаков.