最大绝对值缩放#
- sklearn.preprocessing.maxabs_scale(X, *, axis=0, copy=True)[source]#
将每个特征缩放至 [-1, 1] 范围,同时保持稀疏性。
此估计器会单独缩放每个特征,使得训练集中每个特征的最大绝对值为 1.0。
此缩放器也可应用于稀疏 CSR 或 CSC 矩阵。
- 参数:
- X形状为 (n_samples, n_features) 的 {数组、稀疏矩阵}
数据。
- axis{0, 1}, 默认值=0
用于缩放的轴。如果为 0,则独立缩放每个特征;否则(如果为 1),则缩放每个样本。
- copy布尔值,默认为 True
如果为 False,则尝试避免就地复制和缩放。但这不能保证始终就地工作;例如,如果数据是具有 int 数据类型的 numpy 数组,即使 copy=False,也会返回副本。
- 返回值:
- X_tr形状为 (n_samples, n_features) 的 {ndarray, 稀疏矩阵}
转换后的数据。
警告
数据泄露风险 除非您知道自己在做什么,否则请勿使用
maxabs_scale
。一个常见的错误是在将数据分成训练集和测试集之前将其应用于整个数据。这将使模型评估产生偏差,因为信息会从测试集泄漏到训练集。一般来说,我们建议在MaxAbsScaler
中使用 Pipeline 以防止大多数数据泄露风险: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. ]])