ML

Подготовка данных. Шаг 5: масштабирование и нормализация признаков

Масштабирование (Scaling)

Масштабирование меняет диапазон или распределение значений каждого признака отдельно.

Не путать с нормализацией! Нормализация меняет длину вектора признаков каждого объекта целиком и применяется, когда важно сохранить направления векторов и углы между ними. При этом не так важно сохранять длину векторов. Такое встречается в задачах обработки текста, изображений, в рекомендательных системах.

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

Важно! Перед проведением масштабирования необходимо устранить выбросы в данных или использовать специальные (робастные – устойчивые к выбросам) способы масштабирования.

Способы масштабирования:

Первые два способа – наиболее часто используемы.

  • стандартизация
  • диапазонное шкалирование
  • масштабирование средним

Стандартизация

Приведение значений признака к нулевому среднему и единичной дисперсии.

X = (Xi – Xmean) / sigma

Реализация

from sklearn.preprocessing import StandardScaler
import pandas as pd

scaler = StandardScaler()
X_std = scaler.fit_transform(X)

# Метод возвращает массив numpy
X_std

# Для перевода в датафрейм 
X_1 = pd.DataFrame(X_std, columns=X.columns)

Диапазонное шкалирование – minmax

Все значения признака умещаются в диапазон от 0 до 1. При этом нули остаются нулями.

X = (Xi – min(X)) / (max(X) – min(X))

Есть обобщенная формула для выбора значений диапазона [a, b]:

X = a + ((Xi – min(X)) / (max(X) – min(X))) * (b – a)

Масштабирование средним

X = (Xi – Xmean ) / (max(X) – min(X))

Нормализация

Это изменение масштаба данных таким образом, чтобы их длина (норма) стала равной единице.

Нормализация применяется к вектору признаков одного наблюдения, когда важна их относительная длина и направление вектора.

L2-нормализация

Наиболее частый вариант нормализации.

Xnormalized = X / ||X||2 = X / sqrt(X12 + X22 + … + Xn2)

L1-нормализация

Xnormalized = X / ||X||1 = X / (|X1| + |X2| + … + |Xn|)

Нормализация меняет длину вектора признаков каждого объекта целиком и применяется, когда важно сохранить направления векторов и углы между ними. При этом не так важно сохранять длину векторов. Такое встречается в задачах обработки текста, изображений, в рекомендательных системах.

Вставить формулу как
Блок
Строка
Дополнительные настройки
Цвет формулы
Цвет текста
#333333
Используйте LaTeX для набора формулы
Предпросмотр
\({}\)
Формула не набрана
Вставить