最小最大值缩放 #

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

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

此估计器单独缩放和平移每个特征,以便它在训练集上位于给定范围内,即零到一之间。

变换公式为(当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

参数:
X形状为 (n_samples, n_features) 的类数组

数据。

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

所需转换数据的范围。

axis{0, 1},默认值为 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.  ]])