Spec-Zone.ru › scikit-learn

PowerTransformer

classsklearn.preprocessing.PowerTransformer(method='yeo-johnson', *, standardize=True, copy=True)[исходный код]

Применяет к каждому признаку степенное преобразование, чтобы сделать распределение данных более похожим на гауссово.

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

В настоящее время PowerTransformer поддерживает преобразования Бокса — Кокса и Йео — Джонсона. Оптимальный параметр для стабилизации дисперсии и минимизации асимметрии оценивается методом максимального правдоподобия.

Для преобразования Бокса — Кокса входные данные должны быть строго положительными, а преобразование Йео — Джонсона поддерживает как положительные, так и отрицательные данные.

По умолчанию к преобразованным данным применяется нормализация с нулевым средним и единичной дисперсией.

Пример визуализации см. в разделе Сравнение PowerTransformer с другими масштабировщиками. Чтобы увидеть эффект преобразований Бокса — Кокса и Йео — Джонсона для разных распределений, см.: Отображение данных на нормальное распределение.

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

Добавлено в версии 0.20.

Параметры:
method{‘yeo-johnson’, ‘box-cox’}, default=’yeo-johnson’

Метод степенного преобразования. Доступны следующие методы:

  • ‘yeo-johnson’ [1], работает с положительными и отрицательными значениями
  • ‘box-cox’ [2], работает только со строго положительными значениями
standardizebool, default=True

Установите значение True, чтобы применить к преобразованным выходным данным нормализацию с нулевым средним и единичной дисперсией.

copybool, default=True

Установите значение False, чтобы выполнять вычисления на месте во время преобразования.

Атрибуты:
lambdas_ndarray of float of shape (n_features,)

Параметры степенного преобразования для выбранных признаков.

n_features_in_int

Количество признаков, обнаруженных во время обучения.

Добавлено в версии 0.24.

feature_names_in_ndarray of shape (n_features_in_,)

Названия признаков, обнаруженных во время обучения. Определяется только в том случае, если X содержит названия признаков, представленные строками.

Добавлено в версии 1.0.

См. также

power_transform

Эквивалентная функция без API оценщика.

QuantileTransformer

Отображает данные на стандартное нормальное распределение с параметром output_distribution='normal'.

Примечания

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

Список литературы

[1]

I.K. Yeo и R.A. Johnson, «Новое семейство степенных преобразований для улучшения нормальности или симметрии». Biometrika, 87(4), с. 954–959, (2000).

[2]

G.E.P. Box и D.R. Cox, «Анализ преобразований», Journal of the Royal Statistical Society B, 26, 211–252 (1964).

Примеры

>>> import numpy as np
>>> from sklearn.preprocessing import PowerTransformer
>>> pt = PowerTransformer()
>>> data = [[1, 2], [3, 2], [4, 5]]
>>> print(pt.fit(data))
PowerTransformer()
>>> print(pt.lambdas_)
[ 1.386 -3.100]
>>> print(pt.transform(data))
[[-1.316 -0.707]
 [ 0.209 -0.707]
 [ 1.106  1.414]]
fit(X, y=None)[исходный код]

Оценивает оптимальный параметр lambda для каждого признака.

Оптимальный параметр lambda для минимизации асимметрии оценивается независимо для каждого признака методом максимального правдоподобия.

Параметры:
Xarray-like of shape (n_samples, n_features)

Данные, используемые для оценки оптимальных параметров преобразования.

yNone

Игнорируется.

Возвращает:
selfobject

Обученный преобразователь.

fit_transform(X, y=None)[исходный код]

Обучает PowerTransformer на X, а затем преобразует X.

Параметры:
Xarray-like of shape (n_samples, n_features)

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

yIgnored

Не используется; присутствует для согласованности API в соответствии с соглашением.

Возвращает:
X_newndarray of shape (n_samples, n_features)

Преобразованные данные.

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)[исходный код]

Выполняет обратное степенное преобразование с использованием обученных значений lambda.

Обратное преобразование Бокса — Кокса задаётся формулой:

if lambda_ == 0:
    X_original = exp(X_trans)
else:
    X_original = (X * lambda_ + 1) ** (1 / lambda_)

Обратное преобразование Йео — Джонсона задаётся формулой:

if X >= 0 and lambda_ == 0:
    X_original = exp(X) - 1
elif X >= 0 and lambda_ != 0:
    X_original = (X * lambda_ + 1) ** (1 / lambda_) - 1
elif X < 0 and lambda_ != 2:
    X_original = 1 - (-(2 - lambda_) * X + 1) ** (1 / (2 - lambda_))
elif X < 0 and lambda_ == 2:
    X_original = 1 - exp(-X)
Параметры:
Xarray-like of shape (n_samples, n_features)

Преобразованные данные.

Возвращает:
X_originalndarray of shape (n_samples, n_features)

Исходные данные.

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

Экземпляр оценщика.

transform(X)[исходный код]

Применяет степенное преобразование к каждому признаку с использованием обученных значений lambda.

Параметры:
Xarray-like of shape (n_samples, n_features)

Данные, преобразуемые с помощью степенного преобразования.

Возвращает:
X_transndarray 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.PowerTransformer.html

Spec-Zone.ru

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