scale#
- sklearn.preprocessing.scale(X, *, ось=0, with_mean=True, with_std=True, copy=True)[источник]#
Стандартизировать набор данных вдоль любой оси.
Центрирование к среднему и масштабирование к единичной дисперсии по компонентам.
Подробнее в Руководство пользователя.
- Параметры:
- X{array-like, sparse matrix} формы (n_samples, n_features)
Данные для центрирования и масштабирования.
- ось{0, 1}, по умолчанию=0
Ось, используемая для вычисления средних и стандартных отклонений. Если 0, стандартизировать каждый признак независимо, иначе (если 1) стандартизировать каждую выборку.
- with_meanbool, по умолчанию=True
Если True, центрировать данные перед масштабированием.
- with_stdbool, по умолчанию=True
Если True, масштабировать данные до единичной дисперсии (или, что эквивалентно, единичного стандартного отклонения).
- copybool, по умолчанию=True
Если False, попытаться избежать копирования и масштабировать на месте. Это не гарантирует, что всегда будет работать на месте; например, если данные являются массивом numpy с целочисленным типом данных, копия будет возвращена даже при copy=False.
- Возвращает:
- X_tr{ndarray, разреженная матрица} формы (n_samples, n_features)
Преобразованные данные.
Смотрите также
StandardScalerВыполняет масштабирование до единичной дисперсии с использованием API Transformer (например, как часть предварительной обработки
Pipeline).
Примечания
Эта реализация откажется центрировать разреженные матрицы scipy.sparse, так как это сделает их неразреженными и может привести к сбою программы из-за исчерпания памяти.
Вместо этого от вызывающей стороны ожидается либо явная установка
with_mean=False(в этом случае только масштабирование дисперсии будет выполнено для признаков матрицы CSC) или вызватьX.toarray()если он/она ожидает, что материализованный плотный массив поместится в памяти.Чтобы избежать копирования памяти, вызывающая сторона должна передавать CSC-матрицу.
NaN обрабатываются как пропущенные значения: игнорируются при вычислении статистики и сохраняются во время преобразования данных.
Мы используем смещённый оценщик для стандартного отклонения, эквивалентный
numpy.std(x, ddof=0). Обратите внимание, что выборddofмаловероятно, что повлияет на производительность модели.Для сравнения различных масштабировщиков, преобразователей и нормализаторов см.: Сравнение влияния различных масштабировщиков на данные с выбросами.
Предупреждение
Риск утечки данных
Не используйте
scaleесли вы не знаете, что делаете. Распространённая ошибка — применять его ко всем данным до разделение на обучающую и тестовую выборки. Это сместит оценку модели, потому что информация могла бы просочиться из тестовой выборки в обучающую. В целом, мы рекомендуем использоватьStandardScalerвнутри Pipeline чтобы предотвратить большинство рисков утечки данных:pipe = make_pipeline(StandardScaler(), LogisticRegression()).Примеры
>>> from sklearn.preprocessing import scale >>> X = [[-2, 1, 2], [-1, 0, 1]] >>> scale(X, axis=0) # scaling each column independently array([[-1., 1., 1.], [ 1., -1., -1.]]) >>> scale(X, axis=1) # scaling each row independently array([[-1.37, 0.39, 0.98], [-1.22, 0. , 1.22]])