mars.learn.preprocessing.minmax_scale#

mars.learn.preprocessing.minmax_scale(X, feature_range=(0, 1), *, axis=0, copy=True, 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.

Parameters
  • X (类数组形状 (样本数量, 特征数量)) – 数据。

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

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

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

Returns

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

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

另请参阅

MinMaxScaler

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

备注

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