当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python sklearn power_transform用法及代码示例


本文简要介绍python语言中 sklearn.preprocessing.power_transform 的用法。

用法:

sklearn.preprocessing.power_transform(X, method='yeo-johnson', *, standardize=True, copy=True)

幂变换是一系列参数化、单调变换,用于使数据更丰富Gaussian-like。这对于建模与异方差(非常数方差)相关的问题或其他需要正态性的情况很有用。

目前,power_transform 支持Box-Cox 变换和Yeo-Johnson 变换。通过最大似然估计稳定方差和最小化偏度的最佳参数。

Box-Cox 要求输入数据严格为正,而Yeo-Johnson 支持正数据或负数据。

默认情况下,zero-mean、unit-variance 标准化应用于转换后的数据。

在用户指南中阅读更多信息。

参数

X形状类似数组 (n_samples, n_features)

要使用幂变换进行变换的数据。

method{‘yeo-johnson’,‘box-cox’},默认=‘yeo-johnson’

功率变换方法。可用的方法有:

  • ‘yeo-johnson’ [1],适用于正值和负值
  • ‘box-cox’ [2],仅适用于严格正值
standardize布尔,默认=真

设置为 True 以将zero-mean、unit-variance 标准化应用于转换后的输出。

copy布尔,默认=真

设置为 False 以在转换期间执行就地计算。

返回

X_transndarray 形状(n_samples,n_features)

转换后的数据。

注意

NaNs 被视为缺失值:在 fit 中忽略,并在 transform 中维护。

有关不同缩放器、转换器和规范器的比较,请参阅示例/预处理/plot_all_scaling.py。

参考

1

我知道。 Yeo 和 R.A.约翰逊,“一个新的权力转换家族,以改善常态或对称性。” Biometrika, 87(4), pp.954-959, (2000)。

2

G.E.P. Box 和 D.R.考克斯,“变革分析”,皇家统计学会杂志 B,26, 211-252 (1964)。

例子

>>> import numpy as np
>>> from sklearn.preprocessing import power_transform
>>> data = [[1, 2], [3, 2], [4, 5]]
>>> print(power_transform(data, method='box-cox'))
[[-1.332... -0.707...]
 [ 0.256... -0.707...]
 [ 1.076...  1.414...]]

警告

数据泄露风险。不使用power_transform除非你知道你在做什么。一个常见的错误是将其应用于整个数据分为训练集和测试集。这将使模型评估产生偏差,因为信息会从测试集泄漏到训练集。一般来说,我们建议使用sklearn.preprocessing.PowerTransformer在一个管道为了防止大多数数据泄露风险,例如:pipe = make_pipeline(PowerTransformer(), LogisticRegression()).

相关用法


注:本文由纯净天空筛选整理自scikit-learn.org大神的英文原创作品 sklearn.preprocessing.power_transform。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。