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