幂变换#
- sklearn.preprocessing.power_transform(X, method='yeo-johnson', *, standardize=True, copy=True)[source]#
- 参数化、单调变换,使数据更接近高斯分布。 - 幂变换是一族参数化、单调变换,用于使数据更接近高斯分布。这对于解决与异方差性(非恒定方差)相关的建模问题或需要正态性的其他情况非常有用。 - 目前,power_transform 支持 Box-Cox 变换和 Yeo-Johnson 变换。通过最大似然估计最佳参数,以稳定方差并最小化偏度。 - Box-Cox 变换要求输入数据严格为正,而 Yeo-Johnson 变换支持正值和负值。 - 默认情况下,将对变换后的数据应用零均值、单位方差归一化。 - 在 用户指南 中了解更多信息。 - 参数:
- X形状为 (n_samples, n_features) 的类数组
- 使用幂变换转换的数据。 
- method{'yeo-johnson', 'box-cox'},默认为 'yeo-johnson'
- 幂变换方法。可用方法为: - 0.23 版本中的更改: 在 0.23 版本中, - method参数的默认值从 'box-cox' 更改为 'yeo-johnson'。
- standardize布尔值,默认为 True
- 设置为 True 以将零均值、单位方差归一化应用于变换后的输出。 
- copy布尔值,默认为 True
- 如果为 False,则尝试避免复制并就地转换。但这不能保证总是就地工作;例如,如果数据是具有 int 数据类型的 numpy 数组,即使 copy=False,也会返回一个副本。 
 
- 返回:
- X_trans形状为 (n_samples, n_features) 的 ndarray
- 变换后的数据。 
 
 - 另请参见 - 备注 - 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 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。一个常见的错误是在拆分为训练集和测试集 *之前* 将其应用于整个数据。这将使模型评估产生偏差,因为信息会从测试集泄漏到训练集。通常,我们建议在 Pipeline 中使用- PowerTransformer以防止大多数数据泄漏风险,例如:- pipe = make_pipeline(PowerTransformer(), LogisticRegression())。
