Масштабирование
- 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