Spec-Zone.ru › scikit-learn

PowerTransformer

classsklearn.preprocessing.PowerTransformer(method='yeo-johnson', *, standardize=True, copy=True)[source]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Атрибуты:
lambdas_массив чисел с плавающей точкой формы (n_features,)

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

n_features_in_int

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

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

feature_names_in_массив строк формы (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, “Анализ преобразований”, Журнал Королевского статистического общества 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)[source]

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

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

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

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

yNone

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

Возвращает:
selfобъект

Обученный преобразующий.

fit_transform(X, y=None)[source]

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

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

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

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

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

Возвращает:
X_newмассив чисел с плавающей точкой формы (n_samples, n_features)

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

get_feature_names_out(input_features=None)[source]

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

Параметры:
input_featuresмассив строк или 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_ если feature_names_in_ определено.
Возвращает:
feature_names_outмассив объектов str

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

get_metadata_routing()[source]

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

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

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

MetadataRequest encapsulating routing information.

get_params(deep=True)[source]

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

Параметры:
deepbool, по умолчанию=True

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

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

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

inverse_transform(X)[source]

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

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

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

Обратное преобразование Йео-Джонсона имеет вид:

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

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

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

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

set_output(*, transform=None)[source]

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

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

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

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

  • "default": Формат вывода по умолчанию для преобразователя
  • "pandas": Вывод в виде DataFrame
  • "polars": Вывод в формате Polars
  • None: Конфигурация преобразования не изменяется

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

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

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

set_params(**params)[source]

Установить параметры данного оценивателя.

Метод работает с простыми оценивателями, а также с вложенными объектами (такими как Pipeline). Последние имеют параметры в формате <component>__<parameter>, чтобы было возможно обновить каждый компонент вложенного объекта.

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

Параметры оценивателя.

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

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

transform(X)[source]

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

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

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

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

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

Примеры из галереи

Сравните эффект различных масштабируемых преобразований данных с выбросами

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

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

Spec-Zone.ru

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