dask_ml.preprocessing.QuantileTransformer

dask_ml.preprocessing.QuantileTransformer

class dask_ml.preprocessing.QuantileTransformer(*, n_quantiles=1000, output_distribution='uniform', ignore_implicit_zeros=False, subsample=10000, random_state=None, copy=True)[源代码]

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

此实现与 scikit-learn 的实现不同,它使用了近似分位数。以下是 scikit-learn 的文档字符串。

此方法将特征转换为遵循均匀或正态分布。因此,对于给定的特征,此转换倾向于分散最频繁的值。它还减少了(边际)离群值的影响:因此,这是一种稳健的预处理方案。

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

例如,请参阅 比较 QuantileTransformer 与其他缩放器 的可视化。

更多信息请参阅 用户指南

0.19 新版功能.

参数
n_quantilesint, 默认=1000 或 n_samples

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

输出分布{‘uniform’, ‘normal’}, 默认=’uniform’

变换数据的边缘分布。选项为 ‘均匀’(默认)或 ‘正态’。

ignore_implicit_zerosbool, 默认=False

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

子样本int 或 None, 默认=10_000

用于估计分位数的最大样本数,以提高计算效率。请注意,对于值相同的稀疏矩阵和密集矩阵,子采样过程可能有所不同。通过设置 subsample=None 来禁用子采样。

1.5 新版功能: 添加了选项 None 以禁用子采样。

random_stateint, RandomState 实例或 None, 默认=None

确定用于子采样和噪声平滑的随机数生成。详情请参见 subsample 。传递一个整数以在多次函数调用中获得可重复的结果。参见 术语表

复制bool, 默认=True

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

属性
n_quantiles_整数

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

分位数_形状为 (n_quantiles, n_features) 的 ndarray

对应参考分位数的值。

参考文献形状为 (n_quantiles, ) 的 ndarray

参考文献的分位数。

n_features_in_整数

拟合 过程中看到的特征数量。

0.24 新版功能.

feature_names_in_ : 形状为 (n_features_in_,) 的 ndarray形状为的 ndarray

拟合 过程中看到的特征名称。仅当 X 的所有特征名称均为字符串时定义。

1.0 新版功能.

参见

quantile_transform

不使用估计器API的等效功能。

PowerTransformer

使用幂变换执行到正态分布的映射。

StandardScaler

执行标准化处理,速度更快,但对异常值的鲁棒性较差。

RobustScaler

执行稳健的标准化,去除异常值的影响,但不将异常值和内点放在同一尺度上。

注释

NaN 被视为缺失值:在拟合时被忽略,在转换时被保留。

示例

>>> 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([...])

方法

fit(X[, y])

计算用于转换的分位数。

fit_transform(X[, y])

拟合数据,然后进行转换。

get_feature_names_out([input_features])

获取转换后的输出特征名称。

get_metadata_routing()

获取此对象的元数据路由。

get_params([deep])

获取此估计器的参数。

inverse_transform(X)

反投影到原始空间。

set_output(*[, transform])

设置输出容器。

set_params(**params)

设置此估计器的参数。

transform(X)

数据的特征变换。

__init__(*, n_quantiles=1000, output_distribution='uniform', ignore_implicit_zeros=False, subsample=10000, random_state=None, copy=True)[源代码]