StandardScaler
- classsklearn.preprocessing.StandardScaler(*, copy=True, with_mean=True, with_std=True)[источник]
-
Стандартизирует признаки, вычитая среднее значение и масштабируя их до единичной дисперсии.
Стандартная оценка образца
xвычисляется следующим образом:z = (x - u) / s
где
u— среднее значение обучающих образцов или ноль, еслиwith_mean=False, аs— стандартное отклонение обучающих образцов или единица, еслиwith_std=False.Центрирование и масштабирование выполняются независимо для каждого признака: соответствующие статистики вычисляются по образцам из обучающего набора. Затем среднее значение и стандартное отклонение сохраняются для использования с последующими данными в
transform.Стандартизация набора данных — распространённое требование для многих оценивателей машинного обучения: они могут работать плохо, если отдельные признаки не имеют примерно стандартного нормального распределения (например, распределения Гаусса со средним значением 0 и единичной дисперсией).
Например, многие компоненты целевой функции алгоритма обучения (такие как ядро RBF метода опорных векторов или регуляризаторы L1 и L2 линейных моделей) предполагают, что все признаки центрированы относительно 0 и имеют дисперсии одного порядка. Если дисперсия признака на несколько порядков превышает дисперсии остальных, он может доминировать в целевой функции и помешать оценивателю корректно обучаться на других признаках, как ожидается.
StandardScalerчувствителен к выбросам, и при их наличии признаки могут масштабироваться по-разному. Пример визуализации см. в разделе Сравнение StandardScaler с другими масштабировщиками.Этот масштабировщик можно также применять к разреженным матрицам CSR или CSC, передав
with_mean=False, чтобы сохранить разреженную структуру данных.Подробнее см. в руководстве пользователя.
- Параметры:
-
- copybool, default=True
-
Если False, стараться избегать копирования и выполнять масштабирование на месте. Это не гарантирует, что операция всегда будет выполняться на месте; например, если данные не являются массивом NumPy или матрицей scipy.sparse CSR, всё равно может быть возвращена копия.
- with_meanbool, default=True
-
Если True, центрировать данные перед масштабированием. Это не работает (и вызовет исключение) при применении к разреженным матрицам, поскольку их центрирование предполагает создание плотной матрицы, которая в типичных случаях использования, вероятно, будет слишком большой для размещения в памяти.
- with_stdbool, default=True
-
Если True, масштабировать данные до единичной дисперсии (или, что эквивалентно, единичного стандартного отклонения).
- Атрибуты:
-
- scale_ndarray of shape (n_features,) or None
-
Относительный коэффициент масштабирования данных для каждого признака, обеспечивающий нулевое среднее значение и единичную дисперсию. Обычно он вычисляется с помощью
np.sqrt(var_). Если дисперсия равна нулю, добиться единичной дисперсии невозможно, поэтому данные остаются без изменений, а коэффициент масштабирования равен 1.scale_равноNone, еслиwith_std=False.Добавлено в версии 0.17: scale_
- mean_ndarray of shape (n_features,) or None
-
Среднее значение каждого признака в обучающем наборе. Равно
None, еслиwith_mean=Falseиwith_std=False. - var_ndarray of shape (n_features,) or None
-
Дисперсия каждого признака в обучающем наборе. Используется для вычисления
scale_. РавноNone, еслиwith_mean=Falseиwith_std=False. - n_features_in_int
-
Количество признаков, обнаруженных во время обучения.
Добавлено в версии 0.24.
-
feature_names_in_ndarray of shape (
n_features_in_,) -
Имена признаков, обнаруженных во время обучения. Определяется только в том случае, если
Xсодержит имена признаков, все из которых являются строками.Добавлено в версии 1.0.
- n_samples_seen_int or ndarray of shape (n_features,)
-
Количество образцов, обработанных оценивателем для каждого признака. Если пропущенных образцов нет,
n_samples_seenбудет целым числом; в противном случае это будет массив типа int. Если используютсяsample_weights, значение будет числом с плавающей точкой (при отсутствии пропущенных данных) или массивом типа float, содержащим сумму весов, полученных на данный момент. При новых вызовах fit значение сбрасывается, но увеличивается при последовательных вызовахpartial_fit.
См. также
Примечания
NaN рассматриваются как пропущенные значения: игнорируются при обучении и сохраняются при преобразовании.
Для стандартного отклонения используется смещённая оценка, эквивалентная
numpy.std(x, ddof=0). Обратите внимание, что выборddofвряд ли повлияет на качество модели.Примеры
>>> from sklearn.preprocessing import StandardScaler >>> data = [[0, 0], [0, 0], [1, 1], [1, 1]] >>> scaler = StandardScaler() >>> print(scaler.fit(data)) StandardScaler() >>> print(scaler.mean_) [0.5 0.5] >>> print(scaler.transform(data)) [[-1. -1.] [-1. -1.] [ 1. 1.] [ 1. 1.]] >>> print(scaler.transform([[2, 2]])) [[3. 3.]]
- fit(X, y=None, sample_weight=None)[источник]
-
Вычисляет среднее значение и стандартное отклонение для последующего масштабирования.
- Параметры:
-
- X{array-like, sparse matrix} of shape (n_samples, n_features)
-
Данные для вычисления среднего значения и стандартного отклонения, используемых для последующего масштабирования по оси признаков.
- yNone
-
Игнорируется.
- sample_weightarray-like of shape (n_samples,), default=None
-
Индивидуальные веса для каждого образца.
Добавлено в версии 0.24: поддержка параметра sample_weight в StandardScaler.
- Возвращает:
-
- selfobject
-
Обученный масштабировщик.
- fit_transform(X, y=None, **fit_params)[источник]
-
Обучает преобразователь на данных, а затем преобразует их.
Обучает преобразователь на
Xиyс необязательными параметрамиfit_paramsи возвращает преобразованную версиюX.- Параметры:
-
- Xarray-like of shape (n_samples, n_features)
-
Входные образцы.
- yarray-like of shape (n_samples,) or (n_samples, n_outputs), default=None
-
Целевые значения (None для преобразований без учителя).
- **fit_paramsdict
-
Дополнительные параметры обучения. Передавайте их, только если оцениватель принимает дополнительные параметры в методе
fit.
- Возвращает:
-
- X_newndarray array of shape (n_samples, n_features_new)
-
Преобразованный массив.
- get_feature_names_out(input_features=None)[источник]
-
Возвращает имена выходных признаков после преобразования.
- Параметры:
-
- input_featuresarray-like of str or None, default=None
-
Входные признаки.
- Если
input_featuresравенNone, тоfeature_names_in_используется в качестве имён признаков. Еслиfeature_names_in_не определён, генерируются следующие имена входных признаков:["x0", "x1", ..., "x(n_features_in_ - 1)"]. - Если
input_featuresявляется объектом array-like, тоinput_featuresдолжен соответствоватьfeature_names_in_, еслиfeature_names_in_определён.
- Если
- Возвращает:
-
- feature_names_outndarray of str objects
-
Совпадает с именами входных признаков.
- get_metadata_routing()[источник]
-
Возвращает сведения о маршрутизации метаданных этого объекта.
Описание работы механизма маршрутизации см. в руководстве пользователя.
- Возвращает:
-
- routingMetadataRequest
-
Объект
MetadataRequest, содержащий сведения о маршрутизации.
- get_params(deep=True)[источник]
-
Возвращает параметры этого оценивателя.
- Параметры:
-
- deepbool, default=True
-
Если True, возвращает параметры этого оценивателя и содержащихся в нём подобъектов, которые являются оценивателями.
- Возвращает:
-
- paramsdict
-
Имена параметров, сопоставленные с их значениями.
- inverse_transform(X, copy=None)[источник]
-
Возвращает данные к исходному представлению.
- Параметры:
-
- X{array-like, sparse matrix} of shape (n_samples, n_features)
-
Данные, масштабированные по оси признаков.
- copybool, default=None
-
Копировать входной
Xили нет.
- Возвращает:
-
- X_original{ndarray, sparse matrix} of shape (n_samples, n_features)
-
Преобразованный массив.
- partial_fit(X, y=None, sample_weight=None)[источник]
-
Инкрементальное вычисление среднего значения и стандартного отклонения X для последующего масштабирования.
Все данные X обрабатываются одним пакетом. Этот метод предназначен для случаев, когда
fitнеприменим из-за очень большого количестваn_samplesили потому, что X считывается из непрерывного потока.Алгоритм инкрементального вычисления среднего значения и стандартного отклонения приведён в уравнениях 1.5a,b в статье Chan, Tony F., Gene H. Golub и Randall J. LeVeque. «Алгоритмы вычисления выборочной дисперсии: анализ и рекомендации». The American Statistician 37.3 (1983): 242–247:
- Параметры:
-
- X{array-like, sparse matrix} of shape (n_samples, n_features)
-
Данные для вычисления среднего значения и стандартного отклонения, используемых для последующего масштабирования по оси признаков.
- yNone
-
Игнорируется.
- sample_weightarray-like of shape (n_samples,), default=None
-
Индивидуальные веса для каждого образца.
Добавлено в версии 0.24: поддержка параметра sample_weight в StandardScaler.
- Возвращает:
-
- selfobject
-
Обученный масштабировщик.
- set_callbacks(*callbacks)[источник]
-
Задаёт обратные вызовы для оценивателя.
- Параметры:
-
- *callbackscallback instances
-
Обратные вызовы, которые нужно задать.
- Возвращает:
-
- selfestimator instance
-
Сам экземпляр оценивателя.
- set_fit_request(*, sample_weight:bool|None|str='$UNCHANGED$') StandardScaler[источник]
-
Настраивает, следует ли запрашивать передачу метаданных в метод
fit.Обратите внимание, что этот метод актуален только тогда, когда данный оцениватель используется как вложенный оцениватель в составе метаоценивателя и маршрутизация метаданных включена с помощью
enable_metadata_routing=True(см.sklearn.set_config). Описание работы механизма маршрутизации см. в руководстве пользователя.Для каждого параметра доступны следующие варианты:
-
True: метаданные запрашиваются и передаются вfit, если они предоставлены. Если метаданные не предоставлены, запрос игнорируется. -
False: метаданные не запрашиваются, и метаоцениватель не передаёт их вfit. -
None: метаданные не запрашиваются, и метаоцениватель вызовет ошибку, если пользователь их предоставит. -
str: метаданные следует передавать метаоценивателю под указанным псевдонимом вместо исходного имени.
Значение по умолчанию (
sklearn.utils.metadata_routing.UNCHANGED) сохраняет существующий запрос. Это позволяет изменить запрос для одних параметров, не затрагивая остальные.Добавлено в версии 1.3.
- Параметры:
-
- sample_weightstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED
-
Маршрутизация метаданных для параметра
sample_weightвfit.
- Возвращает:
-
- selfobject
-
Обновлённый объект.
-
- set_inverse_transform_request(*, copy:bool|None|str='$UNCHANGED$') StandardScaler[источник]
-
Настраивает, следует ли запрашивать передачу метаданных в метод
inverse_transform.Обратите внимание, что этот метод актуален только тогда, когда данный оцениватель используется как вложенный оцениватель в составе метаоценивателя и маршрутизация метаданных включена с помощью
enable_metadata_routing=True(см.sklearn.set_config). Описание работы механизма маршрутизации см. в руководстве пользователя.Для каждого параметра доступны следующие варианты:
-
True: метаданные запрашиваются и передаются вinverse_transform, если они предоставлены. Если метаданные не предоставлены, запрос игнорируется. -
False: метаданные не запрашиваются, и метаоцениватель не передаёт их вinverse_transform. -
None: метаданные не запрашиваются, и метаоцениватель вызовет ошибку, если пользователь их предоставит. -
str: метаданные следует передавать метаоценивателю под указанным псевдонимом вместо исходного имени.
Значение по умолчанию (
sklearn.utils.metadata_routing.UNCHANGED) сохраняет существующий запрос. Это позволяет изменить запрос для одних параметров, не затрагивая остальные.Добавлено в версии 1.3.
- Параметры:
-
- copystr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED
-
Маршрутизация метаданных для параметра
copyвinverse_transform.
- Возвращает:
-
- selfobject
-
Обновлённый объект.
-
- set_output(*, transform=None)[источник]
-
Задаёт контейнер выходных данных.
Подробнее см. в руководстве пользователя, а пример использования API — в разделе Знакомство с API set_output.
- Параметры:
-
- transform{“default”, “pandas”, “polars”}, default=None
-
Настраивает формат выходных данных
transformиfit_transform.-
"default": формат выходных данных преобразователя по умолчанию -
"pandas": выходные данные DataFrame -
"polars": выходные данные Polars -
None: настройки преобразования остаются без изменений
Добавлено в версии 1.4: добавлен параметр
"polars". -
- Возвращает:
-
- selfestimator instance
-
Экземпляр оценивателя.
- set_params(**params)[источник]
-
Задаёт параметры этого оценивателя.
Метод работает как с простыми оценивателями, так и со вложенными объектами (например,
Pipeline). У последних параметры имеют вид<component>__<parameter>, что позволяет обновлять каждый компонент вложенного объекта.- Параметры:
-
- **paramsdict
-
Параметры оценивателя.
- Возвращает:
-
- selfestimator instance
-
Экземпляр оценивателя.
- set_partial_fit_request(*, sample_weight:bool|None|str='$UNCHANGED$') StandardScaler[исходный код]
-
Настройте, следует ли запрашивать передачу метаданных в метод
partial_fit.Обратите внимание, что этот метод актуален только в том случае, если данный оцениватель используется как вложенный оцениватель в составе метаоценивателя и маршрутизация метаданных включена с помощью
enable_metadata_routing=True(см.sklearn.set_config). О том, как работает механизм маршрутизации, см. в руководстве пользователя.Для каждого параметра доступны следующие варианты:
-
True: метаданные запрашиваются и передаются вpartial_fit, если они предоставлены. Если метаданные не предоставлены, запрос игнорируется. -
False: метаданные не запрашиваются, и метаоцениватель не будет передавать их вpartial_fit. -
None: метаданные не запрашиваются, и метаоцениватель вызовет ошибку, если пользователь их предоставит. -
str: метаданные должны передаваться метаоценивателю под указанным псевдонимом вместо исходного имени.
Значение по умолчанию (
sklearn.utils.metadata_routing.UNCHANGED) сохраняет существующий запрос. Это позволяет изменить запрос для одних параметров, не меняя его для других.Добавлено в версии 1.3.
- Параметры:
-
- sample_weightstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED
-
Маршрутизация метаданных для параметра
sample_weightвpartial_fit.
- Возвращает:
-
- selfobject
-
Обновленный объект.
-
- set_transform_request(*, copy:bool|None|str='$UNCHANGED$') StandardScaler[исходный код]
-
Настройте, следует ли запрашивать передачу метаданных в метод
transform.Обратите внимание, что этот метод актуален только в том случае, если данный оцениватель используется как вложенный оцениватель в составе метаоценивателя и маршрутизация метаданных включена с помощью
enable_metadata_routing=True(см.sklearn.set_config). О том, как работает механизм маршрутизации, см. в руководстве пользователя.Для каждого параметра доступны следующие варианты:
-
True: метаданные запрашиваются и передаются вtransform, если они предоставлены. Если метаданные не предоставлены, запрос игнорируется. -
False: метаданные не запрашиваются, и метаоцениватель не будет передавать их вtransform. -
None: метаданные не запрашиваются, и метаоцениватель вызовет ошибку, если пользователь их предоставит. -
str: метаданные должны передаваться метаоценивателю под указанным псевдонимом вместо исходного имени.
Значение по умолчанию (
sklearn.utils.metadata_routing.UNCHANGED) сохраняет существующий запрос. Это позволяет изменить запрос для одних параметров, не меняя его для других.Добавлено в версии 1.3.
- Параметры:
-
- copystr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED
-
Маршрутизация метаданных для параметра
copyвtransform.
- Возвращает:
-
- selfobject
-
Обновленный объект.
-
- transform(X, copy=None)[исходный код]
-
Выполняет стандартизацию путем центрирования и масштабирования.
- Параметры:
-
- X{array-like, sparse matrix of shape (n_samples, n_features)
-
Данные, используемые для масштабирования вдоль оси признаков.
- copybool, default=None
-
Копировать входной массив X или нет.
- Возвращает:
-
- X_tr{ndarray, sparse matrix} of shape (n_samples, n_features)
-
Преобразованный массив.
Примеры из галереи
© 2007–2026 The scikit-learn developers
Licensed under the 3-clause BSD License.
https://scikit-learn.org/1.9/modules/generated/sklearn.preprocessing.StandardScaler.html