PowerTransformer#
- класс sklearn.preprocessing.PowerTransformer(метод='yeo-johnson', *, стандартизировать=True, copy=True)[источник]#
Применить степенное преобразование по признакам, чтобы сделать данные более похожими на гауссовы.
Степенное преобразование — это семейство параметрических монотонных преобразований, применяемых для придания данным более гауссовского вида. Это полезно для решения проблем, связанных с гетероскедастичностью (непостоянной дисперсией), или других ситуаций, где желательна нормальность.
В настоящее время PowerTransformer поддерживает преобразование Бокса-Кокса и преобразование Йео-Джонсона. Оптимальный параметр для стабилизации дисперсии и минимизации асимметрии оценивается методом максимального правдоподобия.
Box-Cox требует, чтобы входные данные были строго положительными, в то время как Yeo-Johnson поддерживает как положительные, так и отрицательные данные.
По умолчанию к преобразованным данным применяется нормализация с нулевым средним и единичной дисперсией.
Для примера визуализации обратитесь к Сравните PowerTransformer с другими масштабаторами. Чтобы увидеть эффект преобразований Бокса-Кокса и Йео-Джонсона на различных распределениях, см.: Преобразует данные в нормальное распределение.
Подробнее в Руководство пользователя.
Добавлено в версии 0.20.
- Параметры:
- метод{‘yeo-johnson’, ‘box-cox’}, по умолчанию=’yeo-johnson’
Метод степенного преобразования. Доступные методы:
- стандартизировать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.Ссылки
[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 для минимизации асимметрии оценивается для каждого признака независимо с использованием метода максимального правдоподобия.
- Параметры:
- Xarray-like формы (n_samples, n_features)
Данные, используемые для оценки оптимальных параметров преобразования.
- yNone
Игнорируется.
- Возвращает:
- selfobject
Обученный преобразователь.
- fit_transform(X, y=None)[источник]#
Обучить
PowerTransformertoX, затем преобразовать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_iffeature_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": Вывод PolarsNone: Конфигурация преобразования не изменена
Добавлено в версии 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)
Преобразованные данные.
Примеры галереи#
Сравнение влияния различных масштабировщиков на данные с выбросами