规模#

sklearn.preprocessing.scale(X, *, axis=0, with_mean=True, with_std=True, copy=True)[源代码]#

标准化沿着任何轴的数据集。

中心为平均值,分量尺度为单位方差。

阅读更多的 User Guide .

参数:
X形状(n_samples,n_features)的{类数组,稀疏矩阵}

数据集中并扩展。

axis{0,1},默认值=0

轴用于计算平均值和标准差。如果为0,则独立标准化每个特征,否则(如果为1)标准化每个样本。

with_mean布尔,默认=True

如果为True,请在缩放之前将数据集中在中心。

with_std布尔,默认=True

如果为True,请将数据缩放为单位方差(或等效地,单位标准差)。

copy布尔,默认=True

如果为假,请尽量避免复制并就地缩放。并不能保证这始终有效;例如,如果数据是具有int dype的numpy数组,即使具有Copy=False,也会返回副本。

返回:
X_tr{ndarray,sparse matrix}的形状(n_samples,n_features)

转换后的数据。

参见

StandardScaler

使用Transformer API执行单位方差的缩放(例如,作为预处理的一部分 Pipeline ).

注意到

此实现将拒绝以scipy.sparse矩阵为中心,因为这会使它们成为非稀疏的,并且可能会导致程序崩溃,导致内存耗尽问题。

相反,调用方应该显式地设置 with_mean=False (in在这种情况下,仅对CSC矩阵的特征执行方差缩放)或调用 X.toarray() 如果他/她希望物化密集阵列适合内存。

为了避免内存复制,调用者应该传递CSC矩阵。

NaN被视为缺失值:在计算统计数据时被忽略,并在数据转换期间进行维护。

我们对标准差使用有偏差的估计量,相当于 numpy.std(x, ddof=0) .请注意,选择 ddof 不太可能影响模型性能。

有关不同缩放器、转换器和规范器的比较,请参阅: 比较不同缩放器对数据的影响与离群值 .

警告

数据泄露风险

不要使用 scale 除非你知道你在做什么。一个常见的错误是将其应用于整个数据 before 分为训练集和测试集。这将使模型评估产生偏差,因为信息会从测试集泄露到训练集。一般来说,我们建议使用 StandardScalerPipeline 为了防止大多数数据泄露风险: pipe = make_pipeline(StandardScaler(), LogisticRegression()) .

示例

>>> from sklearn.preprocessing import scale
>>> X = [[-2, 1, 2], [-1, 0, 1]]
>>> scale(X, axis=0)  # scaling each column independently
array([[-1.,  1.,  1.],
       [ 1., -1., -1.]])
>>> scale(X, axis=1)  # scaling each row independently
array([[-1.37...,  0.39...,  0.98...],
       [-1.22...,  0.     ,  1.22...]])