minmax_scale#

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

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

该估计器单独缩放和转换每个特征,使其处于训练集中的给定范围内,即在零和一之间。

转换由(当 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))

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

阅读更多的 User Guide .

Added in version 0.17: minmax_scale function interface to MinMaxScaler.

参数:
X形状类似阵列(n_samples,n_features)

数据。

feature_rangetuple(min,max),默认=(0,1)

所需的转换数据范围。

axis{0,1},默认值=0

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

copy布尔,默认=True

如果为假,请尽量避免复制并就地缩放。并不能保证这始终有效;例如,如果数据是具有int dype的numpy数组,即使具有Copy=False,也会返回副本。

返回:
X_tr形状的nd数组(n_samples,n_features)

转换后的数据。

警告

数据泄露风险不要使用 minmax_scale 除非你知道你在做什么。一个常见的错误是将其应用于整个数据 before 分为训练集和测试集。这将使模型评估产生偏差,因为信息会从测试集泄露到训练集。一般来说,我们建议使用 MinMaxScalerPipeline 为了防止大多数数据泄露风险: 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.  ]])