Что такое масштабирование?
Масштабирование — важный шаг в разработке функций при построении модели машинного обучения. Масштабирование приводит независимые функции в один масштаб, чтобы их можно было сравнивать и обучать более эффективно. Это также помогает избежать смещения в сторону функций, которые имеют более широкий диапазон значений.
Зачем нам нужно масштабирование?
Возьмем пример, есть 2 независимых признака — Возраст человека и годовой доход. Возраст может варьироваться от 0 до 99 лет, а зарплата может варьироваться от 40 000 до 300 000. Можем ли мы сравнить эти два по одной и той же величине? Алгоритмы машинного обучения обычно выполняют математические вычисления, такие как умножение и обращение матриц, для получения уравнений. Если признаки находятся в другом масштабе, уравнения могут стать нестабильными и иметь меньшую надежность.
Масштабирование для категорийных функций?
Реальные данные наполнены категориальными признаками, и важно использовать правильный подход к обработке категориальных признаков. Прежде чем использовать категориальный признак, мы кодируем его с помощью такого метода кодирования, как кодирование меток или однократное кодирование (и другие).
One-Hot Encoding создает новые функции на основе уникальных меток и присваивает каждой из них значения 0 и 1. Кодирование меток создает целочисленные значения для представления каждой метки в категориальном признаке.
Как только мы выберем правильный метод кодирования для категориальных признаков, имеет ли смысл выполнять их масштабирование? Ответ — это зависит от того, какой алгоритм мы используем.
Если мы используем алгоритм, основанный на расстоянии, нам необходимо выполнить масштабирование как категориальных, так и непрерывных данных. Алгоритм на основе расстояния использует расстояние между независимыми функциями для обучения модели наилучшего соответствия.
Примеры алгоритмов базы расстояний: алгоритм K-ближайших соседей (kNN), K-Mean, квантование обучающего вектора (LVQ)
Алгоритм на основе дерева не нуждается в масштабировании признаков, поскольку они не чувствительны к масштабу независимых признаков. Примеры древовидных алгоритмов: Дерево решений, случайный лес, экстремальное повышение градиента (XGBoost)
Вынос
Любой алгоритм, не основанный на расстоянии, не нуждается в масштабировании признаков.