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


Python sklearn QuantileTransformer用法及代码示例


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

用法:

class sklearn.preprocessing.QuantileTransformer(*, n_quantiles=1000, output_distribution='uniform', ignore_implicit_zeros=False, subsample=100000, random_state=None, copy=True)

使用分位数信息转换特征。

此方法将特征转换为遵循均匀或正态分布。因此,对于给定的特征,这种转换往往会分散最常见的值。它还减少了(边际)异常值的影响:因此这是一个强大的预处理方案。

转换独立地应用于每个特征。首先,使用特征的累积分布函数的估计值将原始值映射到均匀分布。然后使用相关的分位数函数将获得的值映射到所需的输出分布。低于或高于拟合范围的新/未见数据的特征值将映射到输出分布的边界。请注意,此变换是非线性的。它可能会扭曲以相同尺度测量的变量之间的线性相关性,但会使以不同尺度测量的变量更直接地具有可比性。

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

参数

n_quantilesint,默认 = 1000 或 n_samples

要计算的分位数。它对应于用于离散累积分布函数的地标数量。如果 n_quantiles 大于样本数,则将 n_quantiles 设置为样本数,因为较大数量的分位数不会更好地逼近累积分布函数估计器。

output_distribution{‘uniform’, ‘normal’},默认='uniform'

转换后数据的边际分布。选项为‘uniform’(默认)或‘normal’。

ignore_implicit_zeros布尔,默认=假

仅适用于稀疏矩阵。如果为 True,则丢弃矩阵的稀疏条目以计算分位数统计信息。如果为 False,这些条目将被视为零。

subsample整数,默认=1e5

用于估计分位数以提高计算效率的最大样本数。请注意,value-identical 稀疏矩阵和密集矩阵的子采样过程可能不同。

random_stateint、RandomState 实例或无,默认=无

确定子采样和平滑噪声的随机数生成。请参阅subsample 了解更多详细信息。传递 int 以获得跨多个函数调用的可重现结果。请参阅术语表。

copy布尔,默认=真

设置为 False 以执行就地转换并避免复制(如果输入已经是一个 numpy 数组)。

属性

n_quantiles_int

用于离散化累积分布函数的实际分位数。

quantiles_ndarray 形状(n_quantiles,n_features)

对应于参考分位数的值。

references_ndarray 形状 (n_quantiles, )

参考的分位数。

n_features_in_int

拟合期间看到的特征数。

feature_names_in_ndarray 形状(n_features_in_,)

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

注意

NaNs 被视为缺失值:在拟合中忽略,并在变换中保持。

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

例子

>>> import numpy as np
>>> from sklearn.preprocessing import QuantileTransformer
>>> rng = np.random.RandomState(0)
>>> X = np.sort(rng.normal(loc=0.5, scale=0.25, size=(25, 1)), axis=0)
>>> qt = QuantileTransformer(n_quantiles=10, random_state=0)
>>> qt.fit_transform(X)
array([...])

相关用法


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