Spec-Zone.ru › scikit-learn

Масштабирование

sklearn.preprocessing.scale(X, *, axis=0, with_mean=True, with_std=True, copy=True)[source]

Масштабирование набора данных по любой оси.

Центрирование относительно среднего значения и масштабирование по компонентам до единичной дисперсии.

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

Параметры:
X{array-like, разреженная матрица} формы (n_samples, n_features)

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

axis{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 преобразователя (например, как часть предобработки Pipeline).

Примечания

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

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

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

Значения NaN обрабатываются как пропущенные значения: игнорируются при вычислении статистических данных и сохраняются при преобразовании данных.

Мы используем смещённую оценку стандартного отклонения, эквивалентную numpy.std(x, ddof=0). Обратите внимание, что выбор ddof маловероятно повлияет на производительность модели.

Для сравнения различных масштабирующих, трансформирующих и нормализующих инструментов см.: Сравнение эффекта различных масштабирующих инструментов на данные с выбросами.

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

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

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

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

Spec-Zone.ru

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