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. ]])