robust_scale#

sklearn.preprocessing.robust_scale(X, *, ось=0, with_centering=True, with_scaling=True, quantile_range=(25.0, 75.0), copy=True, unit_variance=False)[источник]#

Стандартизировать набор данных вдоль любой оси.

Центрировать по медиане и масштабировать по компонентам в соответствии с межквартильным размахом.

Подробнее в Руководство пользователя.

Параметры:
X{array-like, sparse matrix} формы (n_sample, n_features)

Данные для центрирования и масштабирования.

осьint, по умолчанию=0

Ось, используемая для вычисления медиан и IQR вдоль. Если 0, независимо масштабируйте каждый признак, иначе (если 1) масштабируйте каждый образец.

with_centeringbool, по умолчанию=True

Если True, центрировать данные перед масштабированием.

with_scalingbool, по умолчанию=True

Если True, масштабируйте данные до единичной дисперсии (или, что эквивалентно, единичного стандартного отклонения).

quantile_rangeкортеж (q_min, q_max), 0.0 < q_min < q_max < 100.0, по умолчанию=(25.0, 75.0)

Квантильный диапазон, используемый для расчета scale_. По умолчанию это равно IQR, т.е. q_min — это первый квартиль и q_max является третьим квартилем.

Добавлено в версии 0.18.

copybool, по умолчанию=True

Если False, попытаться избежать копирования и масштабировать на месте. Это не гарантирует, что всегда будет работать на месте; например, если данные являются массивом numpy с целочисленным типом данных, копия будет возвращена даже при copy=False.

unit_variancebool, по умолчанию=False

Если True, масштабируйте данные так, чтобы нормально распределенные признаки имели дисперсию 1. В общем случае, если разница между x-значениями q_max и q_min для стандартного нормального распределения больше 1, набор данных будет масштабирован вниз. Если меньше 1, набор данных будет масштабирован вверх.

Добавлено в версии 0.24.

Возвращает:
X_tr{ndarray, разреженная матрица} формы (n_samples, n_features)

Преобразованные данные.

Смотрите также

RobustScaler

Выполняет центрирование и масштабирование с использованием API Transformer (например, как часть предобработки Pipeline).

Примечания

Эта реализация откажется центрировать разреженные матрицы scipy.sparse, так как это сделает их неразреженными и может привести к сбою программы из-за исчерпания памяти.

Вместо этого от вызывающей стороны ожидается либо явная установка with_centering=False (в этом случае только масштабирование дисперсии будет выполнено для признаков матрицы CSR) или вызвать X.toarray() если он/она ожидает, что материализованный плотный массив поместится в памяти.

Чтобы избежать копирования памяти, вызывающая сторона должна передавать матрицу CSR.

Для сравнения различных масштабировщиков, преобразователей и нормализаторов см.: Сравнение влияния различных масштабировщиков на данные с выбросами.

Предупреждение

Риск утечки данных

Не используйте robust_scale если вы не знаете, что делаете. Распространённая ошибка — применять его ко всем данным до разделение на обучающую и тестовую выборки. Это сместит оценку модели, потому что информация могла бы просочиться из тестовой выборки в обучающую. В целом, мы рекомендуем использовать RobustScaler внутри Pipeline чтобы предотвратить большинство рисков утечки данных: pipe = make_pipeline(RobustScaler(), LogisticRegression()).

Примеры

>>> from sklearn.preprocessing import robust_scale
>>> X = [[-2, 1, 2], [-1, 0, 1]]
>>> robust_scale(X, axis=0)  # scale each column independently
array([[-1.,  1.,  1.],
       [ 1., -1., -1.]])
>>> robust_scale(X, axis=1)  # scale each row independently
array([[-1.5,  0. ,  0.5],
       [-1. ,  0. ,  1. ]])