minmax_scale#

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

通过将每个特征缩放到给定范围来转换特征。

此估计器对每个特征进行单独的缩放和平移,使其位于训练集的给定范围内,例如 0 到 1 之间。

变换公式如下(当 axis=0 时)

X_std = (X - X.min(axis=0)) / (X.max(axis=0) - X.min(axis=0))
X_scaled = X_std * (max - min) + min

其中 min, max = feature_range。

变换计算方式如下(当 axis=0 时)

X_scaled = scale * X + min - X.min(axis=0) * scale
where scale = (max - min) / (X.max(axis=0) - X.min(axis=0))

这种变换通常用作零均值、单位方差缩放的替代方法。

用户指南 中阅读更多内容。

版本 0.17 新增: minmax_scale 函数接口,对应于 MinMaxScaler

参数:
Xshape 为 (n_samples, n_features) 的 array-like

数据。

feature_range元组 (min, max),默认=(0, 1)

转换后数据的目标范围。

axis{0, 1}, default=0

用于缩放的轴。如果为 0,则独立缩放每个特征;否则(如果为 1),则缩放每个样本。

copy布尔值, 默认为 True

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

返回:
X_tr形状为 (n_samples, n_features) 的 ndarray

转换后的数据。

警告

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

另请参阅

MinMaxScaler

使用 Transformer API 执行缩放至给定范围(例如,作为预处理 Pipeline 的一部分)。

注意事项

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

示例

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