PowerTransformer#

класс sklearn.preprocessing.PowerTransformer(метод='yeo-johnson', *, стандартизировать=True, copy=True)[источник]#

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

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

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

Box-Cox требует, чтобы входные данные были строго положительными, в то время как Yeo-Johnson поддерживает как положительные, так и отрицательные данные.

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

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

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

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

Параметры:
метод{‘yeo-johnson’, ‘box-cox’}, по умолчанию=’yeo-johnson’

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

  • 'yeo-johnson' [1], работает с положительными и отрицательными значениями

  • ‘box-cox’ [2], работает только со строго положительными значениями

стандартизироватьbool, по умолчанию=True

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

copybool, по умолчанию=True

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

Атрибуты:
lambdas_ndarray типа float формы (n_features,)

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

n_features_in_int

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

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

feature_names_in_ndarray формы (n_features_in_,)

Имена признаков, наблюдаемых во время fit. Определено только когда X имеет имена признаков, которые все являются строками.

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

Смотрите также

power_transform

коммуникация вокруг scikit-learn

QuantileTransformer

Преобразует данные в стандартное нормальное распределение с параметром output_distribution='normal'.

Примечания

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

Ссылки

Примеры

>>> 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 для минимизации асимметрии оценивается для каждого признака независимо с использованием метода максимального правдоподобия.

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

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

yNone

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

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

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

fit_transform(X, y=None)[источник]#

Обучить PowerTransformer to X, затем преобразовать X.

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

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

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

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

Возвращает:
X_newndarray формы (n_samples, n_features)

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

get_feature_names_out(input_features=None)[источник]#

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

Параметры:
input_featuresarray-like из str или None, по умолчанию=None

Входные признаки.

  • Если input_features является None, затем feature_names_in_ используется как имена признаков в. Если feature_names_in_ не определено, тогда генерируются следующие имена входных признаков: ["x0", "x1", ..., "x(n_features_in_ - 1)"].

  • Если input_features является массивоподобным, тогда input_features должен соответствовать feature_names_in_ if feature_names_in_ определен.

Возвращает:
feature_names_outndarray из str объектов

То же, что и входные признаки.

6332()[источник]#

Получить маршрутизацию метаданных этого объекта.

Пожалуйста, проверьте Руководство пользователя о том, как работает механизм маршрутизации.

Возвращает:
маршрутизацияMetadataRequest

A MetadataRequest Инкапсуляция информации о маршрутизации.

get_params(глубокий=True)[источник]#

Получить параметры для этого оценщика.

Параметры:
глубокийbool, по умолчанию=True

Если True, вернет параметры для этого оценщика и вложенных подобъектов, которые являются оценщиками.

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

Имена параметров, сопоставленные с их значениями.

inverse_transform(X)[источник]#

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

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

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 формы (n_samples, n_features)

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

Возвращает:
X_originalndarray формы (n_samples, n_features)

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

set_output(*, преобразовать=None)[источник]#

Установить контейнер вывода.

См. Введение API set_output для примера использования API.

Параметры:
преобразовать{“default”, “pandas”, “polars”}, по умолчанию=None

Настройка вывода transform и fit_transform.

  • "default": Формат вывода трансформера по умолчанию

  • "pandas": DataFrame вывод

  • "polars": Вывод Polars

  • None: Конфигурация преобразования не изменена

Добавлено в версии 1.4: "polars" опция была добавлена.

Возвращает:
selfэкземпляр estimator

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

set_params(**params)[источник]#

Установить параметры этого оценщика.

Метод работает как на простых оценщиках, так и на вложенных объектах (таких как Pipeline). Последние имеют параметры вида __ чтобы можно было обновить каждый компонент вложенного объекта.

Параметры:
**paramsdict

Параметры оценщика.

Возвращает:
selfэкземпляр estimator

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

преобразовать(X)[источник]#

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

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

Данные для преобразования с использованием степенного преобразования.

Возвращает:
X_transndarray формы (n_samples, n_features)

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