sklearn.preprocessing.power_transform¶
sklearn.preprocessing.power_transform(X, method='yeo-johnson', *, standardize=True, copy=True)
幂变换是一组参数化,单调变换,可用于使数据更像高斯型。这对于建模与异方差性(非恒定方差)或其他需要正态性的情况有关的模型很有用。
当前,power_transform支持Box-Cox变换和Yeo-Johnson变换。通过最大似然来估计用于稳定方差和最小化偏斜的最佳参数。
Box-Cox要求输入数据严格为正,而Yeo-Johnson支持正或负数据。
默认情况下,零均值,单位方差归一化应用于转换后的数据。
在用户指南中阅读更多内容。
参数 | 说明 |
---|---|
X | array-like, shape (n_samples, n_features) 使用幂变换要变换的数据。 |
method | {‘yeo-johnson’, ‘box-cox’}, default=’yeo-johnson’ 功率变换方法。可用的方法有: 'yeo-johnson'[1],使用正值和负值 'box-cox'[2],仅适用于严格为正的值 *在版本0.23中更改:*方法参数的默认值在0.23中从“ box-cox”更改为“ yeo-johnson”。 |
standardize | boolean, default=True 设置为True可将零均值,单位方差归一化应用于转换后的输出。 |
copy | boolean, optional, default=True 设置为False可在转换期间执行就地计算。 |
返回 | 说明 |
---|---|
X_trans | array-like, shape (n_samples, n_features) 转换后的数据。 |
另见
与Transformer API等效的转换(例如,作为预处理sklearn.pipeline.Pipeline
的一部分)。
使用参数output_distribution ='normal'将数据映射到标准正态分布。
注释
NaN被视为缺失值:忽略适合度,并保持变换值。
有关不同缩放器,转换器和规范化器的比较,请参阅examples/preprocessing/plot_all_scaling.py。
参考资料
【1】 IK Yeo和RA Johnson,“新的功率转换系列,可改善正态性或对称性。”Biometrika,87(4),第954-959页,(2000)。
【2】GEP Box和DR 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...]]