PowerTransformer
- classsklearn.preprocessing.PowerTransformer(method='yeo-johnson', *, standardize=True, copy=True)[source]
-
Применяет степенное преобразование к данным, чтобы сделать их более похожими на гауссовы.
Степенные преобразования — это семейство параметрических монотонных преобразований, применяемых для того, чтобы сделать данные более похожими на гауссовы. Это полезно для моделирования проблем, связанных с гетероскедастичностью (непостоянной дисперсией) или другими ситуациями, где требуется нормальность.
В настоящее время PowerTransformer поддерживает преобразование Бокса-Кокса и преобразование Йео-Джонсона. Оптимальный параметр для стабилизации дисперсии и минимизации асимметрии оценивается с помощью метода максимального правдоподобия.
Преобразование Бокса-Кокса требует, чтобы входные данные были строго положительными, в то время как преобразование Йео-Джонсона поддерживает как положительные, так и отрицательные данные.
По умолчанию к преобразованным данным применяется нормализация с нулевым средним и единичной дисперсией.
Для визуализации примера см. Сравнение PowerTransformer с другими масштабировщиками. Чтобы увидеть эффект преобразований Бокса-Кокса и Йео-Джонсона на различных распределениях, см.: Преобразование данных в нормальное распределение.
Подробнее см. в Руководстве пользователя.
Добавлен в версии 0.20.
- Параметры:
-
- method{‘yeo-johnson’, ‘box-cox’}, по умолчанию=’yeo-johnson’
-
Метод степенного преобразования. Доступные методы:
- 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]Примеры
>>> 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
-
MetadataRequestencapsulating 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