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)[source]
-
Стандартизировать набор данных по любой оси.
Центрировать по медиане и масштабировать по компонентам в соответствии с межквартильным размахом.
Подробнее см. в Руководстве пользователя.
- Параметры:
-
- X{array-like, разреженная матрица} формы (n_sample, n_features)
-
Данные для центрирования и масштабирования.
- axisint, по умолчанию 0
-
Ось, используемая для вычисления медиан и ИКР вдоль. Если 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_. По умолчанию он равен ИКР, т.е.q_min— первая квантиль, аq_max— третья квантиль.Добавлен в версии 0.18.
- copybool, по умолчанию True
-
Если False, попытаться избежать копирования и масштабировать на месте. Это не гарантирует, что это всегда будет работать на месте; например, если данные — массив numpy с целочисленным типом данных, будет возвращена копия, даже с copy=False.
- unit_variancebool, по умолчанию False
-
Если
True, масштабировать данные так, чтобы нормально распределенные черты имели дисперсию 1. В общем случае, если разность между значениями xq_maxиq_minдля стандартного нормального распределения больше 1, набор данных будет масштабироваться вниз. Если меньше 1, набор данных будет масштабироваться вверх.Добавлен в версии 0.24.
- Возвращает:
-
- X_tr{ndarray, разреженная матрица} формы (n_samples, n_features)
-
Преобразованные данные.
См. также
RobustScaler-
Выполняет центрирование и масштабирование с помощью API преобразователя (например, как часть предобработки
Pipeline).
Примечания
Эта реализация откажется от центрирования разреженных матриц scipy, поскольку это сделает их неразреженными и потенциально приведет к сбою программы из-за проблем с исчерпанием памяти.
Вместо этого ожидается, что вызывающая сторона либо явно установит
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. ]])
© 2007–2025 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.6/modules/generated/sklearn.preprocessing.robust_scale.html