robust_scale#
- sklearn.preprocessing.robust_scale(X, *, axis=0, with_centering=True, with_scaling=True, quantile_range=(25.0, 75.0), copy=True, unit_variance=False)[源代码]#
标准化沿着任何轴的数据集。
根据四分位数范围,居中至中位数和分量尺度。
阅读更多的 User Guide .
- 参数:
- X形状(n_sample,n_features)的{类数组,稀疏矩阵}
数据集中并扩展。
- axisint,默认=0
轴用于计算中位数和IQR。如果为0,则独立缩放每个特征,否则(如果为1)缩放每个样本。
- with_centering布尔,默认=True
如果
True
,在扩展之前将数据集中在中心。- with_scaling布尔,默认=True
如果
True
,将数据缩放为单位方差(或等效地,单位标准差)。- quantile_rangetuple(q_min,q_max),0.0 < q_min < q_max < 100.0, 默认=(25.0,75.0)
用于计算的分位数范围
scale_
.默认情况下,这等于IQR,即,q_min
是第一个分位数,q_max
是第三分位数。Added in version 0.18.
- copy布尔,默认=True
如果为假,请尽量避免复制并就地缩放。并不能保证这始终有效;例如,如果数据是具有int dype的numpy数组,即使具有Copy=False,也会返回副本。
- unit_variance布尔,默认=假
如果
True
,缩放数据,使正态分布的要素的方差为1。一般来说,如果x值之间的差q_max
和q_min
如果标准正态分布大于1,则数据集将按比例缩小。如果小于1,则将扩大数据集。Added in version 0.24.
- 返回:
- X_tr{ndarray,sparse matrix}的形状(n_samples,n_features)
转换后的数据。
参见
RobustScaler
使用Transformer API执行居中和缩放(例如,作为预处理的一部分
Pipeline
).
注意到
此实现将拒绝以scipy.sparse矩阵为中心,因为这会使它们成为非稀疏的,并且可能会导致程序崩溃,导致内存耗尽问题。
相反,调用方应该显式地设置
with_centering=False
(in在这种情况下,仅对CSR矩阵的特征执行方差缩放)或调用X.toarray()
如果他/她希望物化密集阵列适合内存。为了避免内存复制,调用者应该传递CSR矩阵。
有关不同缩放器、转换器和规范器的比较,请参阅: 比较不同缩放器对数据的影响与离群值 .
警告
数据泄露风险
不要使用
robust_scale
除非你知道你在做什么。一个常见的错误是将其应用于整个数据 before 分为训练集和测试集。这将使模型评估产生偏差,因为信息会从测试集泄露到训练集。一般来说,我们建议使用RobustScaler
内 Pipeline 为了防止大多数数据泄露风险:pipe = make_pipeline(RobustScaler(), LogisticRegression())
.示例
>>> from sklearn.preprocessing import robust_scale >>> X = [[-2, 1, 2], [-1, 0, 1]] >>> robust_scale(X, axis=0) # scale each column independently array([[-1., 1., 1.], [ 1., -1., -1.]]) >>> robust_scale(X, axis=1) # scale each row independently array([[-1.5, 0. , 0.5], [-1. , 0. , 1. ]])