maxabs_scale#
- sklearn.preprocessing.maxabs_scale(X, *, axis=0, copy=True)#
将每个特征缩放到 [-1, 1] 范围而不破坏稀疏性。
该估计器将每个特征单独缩放,使得训练集中每个特征的最大绝对值将为 1.0。
该缩放器也可以应用于稀疏 CSR 或 CSC 矩阵。
- Parameters:
- X{array-like, sparse matrix},形状为 (n_samples, n_features)
数据。
- axis{0, 1},默认=0
用于缩放的轴。如果为 0,则独立缩放每个特征,否则(如果为 1)缩放每个样本。
- copybool,默认=True
如果为 False,尝试避免复制并在原地缩放。 这不能保证总是就地工作;例如,如果数据是具有 int 类型的 numpy 数组,即使 copy=False,也会返回一个副本。
- Returns:
- X_tr{ndarray, sparse matrix},形状为 (n_samples, n_features)
变换后的数据。
Warning
数据泄露风险 除非你知道自己在做什么,否则不要使用
maxabs_scale
。一个常见的错误是在将其拆分为训练集和测试集之前对整个数据应用它。这将使模型评估产生偏差,因为测试集的信息会泄露到训练集中。 一般来说,我们建议在 Pipeline 中使用MaxAbsScaler
以防止大多数数据泄露风险:pipe = make_pipeline(MaxAbsScaler(), LogisticRegression())
。
See also
MaxAbsScaler
使用 Transformer API(例如,作为预处理
Pipeline
的一部分)执行缩放到 [-1, 1] 范围。
Notes
NaNs 被视为缺失值:在计算统计数据时被忽略,并在数据变换期间保持不变。
有关不同缩放器、变换器和规范化器的比较,请参见:比较不同缩放器对含有异常值的数据的影响 。
Examples
>>> from sklearn.preprocessing import maxabs_scale >>> X = [[-2, 1, 2], [-1, 0, 1]] >>> maxabs_scale(X, axis=0) # 独立缩放每一列 array([[-1. , 1. , 1. ], [-0.5, 0. , 0.5]]) >>> maxabs_scale(X, axis=1) # 独立缩放每一行 array([[-1. , 0.5, 1. ], [-1. , 0. , 1. ]])