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


Python sklearn PowerTransformer用法及代码示例


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

用法:

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

应用幂变换特征使数据更多Gaussian-like。

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

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

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

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

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

参数

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

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

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

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

copy布尔,默认=真

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

属性

lambdas_ndarray 形状的浮点数(n_features,)

所选特征的幂变换参数。

n_features_in_int

拟合期间看到的特征数。

feature_names_in_ndarray 形状(n_features_in_,)

拟合期间看到的特征名称。仅当 X 具有全为字符串的函数名称时才定义。

注意

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 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...]]

相关用法


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