maxabs_scale#

sklearn.preprocessing.maxabs_scale(X, *, axis=0, copy=True)[source]#

将每个特征缩放到 [-1, 1] 范围而不破坏稀疏性。

此估计器单独缩放每个特征,使得训练集中每个特征的最大绝对值为 1.0。

此缩放器也可应用于稀疏 CSR 或 CSC 矩阵。

参数:
Xshape 为 (n_samples, n_features) 的 {array-like, sparse matrix}

数据。

axis{0, 1}, default=0

沿哪个轴进行缩放。如果为 0,则独立缩放每个特征;否则(如果为 1),则缩放每个样本。

copy布尔值, 默认为 True

如果为 False,则尝试避免复制并将数据就地缩放。这不能保证始终可以就地完成;例如,如果数据是具有 int 数据类型的 numpy 数组,则即使 copy=False 也会返回副本。

返回:
X_tr{ndarray, sparse matrix} of shape (n_samples, n_features)

转换后的数据。

警告

数据泄露风险 请不要使用 maxabs_scale,除非您知道自己在做什么。一个常见的错误是在将数据拆分为训练集和测试集*之前*,将其应用于整个数据。这将导致模型评估偏差,因为信息会从测试集泄露到训练集。通常,我们建议在 Pipeline 中使用 MaxAbsScaler,以防止大多数数据泄露风险:pipe = make_pipeline(MaxAbsScaler(), LogisticRegression())

另请参阅

MaxAbsScaler

使用 Transformer API(例如,作为预处理 Pipeline 的一部分)将数据缩放到 [-1, 1] 范围。

注意事项

NaN 被视为缺失值:在计算统计数据时被忽略,并在数据转换期间保持不变。

有关不同缩放器、变换器和归一器的比较,请参阅:比较不同缩放器对异常值数据的效果

示例

>>> from sklearn.preprocessing import maxabs_scale
>>> X = [[-2, 1, 2], [-1, 0, 1]]
>>> maxabs_scale(X, axis=0)  # scale each column independently
array([[-1. ,  1. ,  1. ],
       [-0.5,  0. ,  0.5]])
>>> maxabs_scale(X, axis=1)  # scale each row independently
array([[-1. ,  0.5,  1. ],
       [-1. ,  0. ,  1. ]])