Spec-Zone.ru › scikit-learn

robust_scale

sklearn.preprocessing.robust_scale(X, *, axis=0, with_centering=True, with_scaling=True, quantile_range=(25.0, 75.0), copy=True, unit_variance=False)[исходный код]

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

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

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

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

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

axisint, default=0

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

with_centeringbool, default=True

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

with_scalingbool, default=True

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

quantile_rangetuple (q_min, q_max), 0.0 < q_min < q_max < 100.0, default=(25.0, 75.0)

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

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

copybool, default=True

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

unit_variancebool, default=False

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

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

Возвращает:
X_tr{ndarray, sparse matrix} of shape (n_samples, n_features)

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

См. также

RobustScaler

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

Примечания

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

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

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

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

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

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

Не используйте robust_scale, если не понимаете, что делаете. Распространённая ошибка — применять эту функцию ко всем данным до разделения на обучающую и тестовую выборки. Это приведёт к смещённой оценке модели, поскольку информация из тестовой выборки попадёт в обучающую. В общем случае мы рекомендуем использовать RobustScaler внутри конвейера, чтобы предотвратить большинство рисков утечки данных: 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. ]])

© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/modules/generated/sklearn.preprocessing.robust_scale.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API