maxframe.learn.preprocessing.minmax_scale#

maxframe.learn.preprocessing.minmax_scale(X, feature_range=(0, 1), *, axis=0, copy=True, validate=True, execute=False, session=None, run_kwargs=None)[源代码]#

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

此估计器独立地缩放和平移每个特征,使其在训练集上的取值范围为给定区间,即在零和一之间。

变换公式如下(当 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 (array-like of shape (n_samples, n_features)) -- 数据。

  • feature_range (tuple (min, max), default=(0, 1)) -- 变换后数据的期望范围。

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

  • copy (bool, default=True) -- 设置为 False 可执行就地缩放并避免复制(如果输入已经是 numpy 数组)。

返回:

  • X_tr (ndarray of shape (n_samples, n_features)) -- 变换后的数据。

  • .. 警告:: 数据泄露风险 -- 除非你知道自己在做什么,否则不要使用 minmax_scale()。一个常见的错误是在将数据拆分为训练集和测试集 之前 应用它。这会导致模型评估产生偏差,因为信息会从测试集泄露到训练集中。通常,我们建议在 Pipeline 中使用 MinMaxScaler 来防止大多数数据泄露风险:pipe = make_pipeline(MinMaxScaler(), LogisticRegression())

参见

MinMaxScaler

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

备注

有关不同缩放器、变换器和归一化器的比较,请参见 examples/preprocessing/plot_all_scaling.py