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