MinMaxScaler#

class sklearn.preprocessing.MinMaxScaler(feature_range=(0, 1), *, copy=True, clip=False)[源]#

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

此估计器会独立地缩放和平移每个特征,使其在训练集上处于给定的范围内,例如在零和一之间。

变换由以下公式给出

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。

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

MinMaxScaler 不会减小异常值的影响,但它会线性地将它们缩放到一个固定的范围,其中出现的最大数据点对应最大值,最小数据点对应最小值。有关示例可视化,请参阅 Compare MinMaxScaler with other scalers

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

参数:
feature_range元组 (min, max),默认为 (0, 1)

变换后数据的期望范围。

copy布尔值, 默认为 True

设置为 False 以执行原地行归一化并避免复制(如果输入已经是 numpy 数组)。

clip布尔值,默认为 False

设置为 True 以将保留数据的变换值裁剪到提供的 feature_range。由于此参数会裁剪值,因此 inverse_transform 可能无法恢复原始数据。

注意

clip=True 设置为 True 并不会阻止特征漂移(训练数据和测试数据之间的分布偏移)。变换后的值被裁剪到 feature_range,这有助于避免对范围外输入敏感的模型(例如线性模型)出现意外行为。请谨慎使用,因为裁剪可能会扭曲测试数据的分布。

0.24 版本新增。

属性:
min_形状为 (n_features,) 的 ndarray

每特征的最小值调整。等同于 min - X.min(axis=0) * self.scale_

scale_形状为 (n_features,) 的 ndarray

每特征数据的相对缩放比例。等同于 (max - min) / (X.max(axis=0) - X.min(axis=0))

Added in version 0.17: scale_ attribute.

data_min_形状为 (n_features,) 的 ndarray

每特征在数据中看到的最小值

Added in version 0.17: data_min_

data_max_形状为 (n_features,) 的 ndarray

每特征在数据中看到的は最大值

Added in version 0.17: data_max_

data_range_形状为 (n_features,) 的 ndarray

每特征在数据中看到的范围 (data_max_ - data_min_)

Added in version 0.17: data_range_

n_features_in_int

拟合 期间看到的特征数。

0.24 版本新增。

n_samples_seen_int

估计器处理的样本数量。在每次调用 fit 时都会重置,但在多次调用 partial_fit 时会累加。

feature_names_in_shape 为 (n_features_in_,) 的 ndarray

fit 期间看到的特征名称。仅当 X 具有全部为字符串的特征名称时才定义。

1.0 版本新增。

另请参阅

minmax_scale

不包含估算器 API 的等效函数。

注意事项

NaN 被视为缺失值:在拟合过程中忽略,在转换过程中保持。

示例

>>> from sklearn.preprocessing import MinMaxScaler
>>> data = [[-1, 2], [-0.5, 6], [0, 10], [1, 18]]
>>> scaler = MinMaxScaler()
>>> print(scaler.fit(data))
MinMaxScaler()
>>> print(scaler.data_max_)
[ 1. 18.]
>>> print(scaler.transform(data))
[[0.   0.  ]
 [0.25 0.25]
 [0.5  0.5 ]
 [1.   1.  ]]
>>> print(scaler.transform([[2, 2]]))
[[1.5 0. ]]
fit(X, y=None)[源]#

计算用于后续缩放的最小值和最大值。

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

用于计算用于沿特征轴的后续缩放的每特征最小值和最大值的数据。

yNone

忽略。

返回:
selfobject

拟合好的缩放器。

fit_transform(X, y=None, **fit_params)[源]#

拟合数据,然后对其进行转换。

使用可选参数 fit_params 将转换器拟合到 Xy,并返回 X 的转换版本。

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

输入样本。

y形状为 (n_samples,) 或 (n_samples, n_outputs) 的类数组对象,默认=None

目标值(对于无监督转换,为 None)。

**fit_paramsdict

额外的拟合参数。仅当估计器在其 fit 方法中接受额外的参数时才传递。

返回:
X_newndarray array of shape (n_samples, n_features_new)

转换后的数组。

get_feature_names_out(input_features=None)[源]#

获取转换的输出特征名称。

参数:
input_featuresarray-like of str or None, default=None

输入特征。

  • 如果 input_featuresNone,则使用 feature_names_in_ 作为输入特征名称。如果 feature_names_in_ 未定义,则生成以下输入特征名称:["x0", "x1", ..., "x(n_features_in_ - 1)"]

  • 如果 input_features 是 array-like,则如果定义了 feature_names_in_input_features 必须与 feature_names_in_ 匹配。

返回:
feature_names_outstr 对象的 ndarray

与输入特征相同。

get_metadata_routing()[源]#

获取此对象的元数据路由。

请查阅 用户指南,了解路由机制如何工作。

返回:
routingMetadataRequest

封装路由信息的 MetadataRequest

get_params(deep=True)[源]#

获取此估计器的参数。

参数:
deepbool, default=True

如果为 True,将返回此估计器以及包含的子对象(如果它们是估计器)的参数。

返回:
paramsdict

参数名称映射到其值。

inverse_transform(X)[源]#

根据 feature_range 撤销 X 的缩放。

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

将要进行变换的输入数据。它不能是稀疏的。

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

转换后的数据。

partial_fit(X, y=None)[源]#

在线计算 X 的最小值和最大值,用于后续缩放。

X 被作为一个整体批次处理。这适用于由于 n_samples 数量非常大或 X 是从连续流中读取而无法执行 fit 的情况。

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

用于计算用于沿特征轴的后续缩放的均值和标准差的数据。

yNone

忽略。

返回:
selfobject

拟合好的缩放器。

set_output(*, transform=None)[源]#

设置输出容器。

有关如何使用 API 的示例,请参阅引入 set_output API

参数:
transform{“default”, “pandas”, “polars”}, default=None

配置 transformfit_transform 的输出。

  • "default": 转换器的默认输出格式

  • "pandas": DataFrame 输出

  • "polars": Polars 输出

  • None: 转换配置保持不变

1.4 版本新增: 添加了 "polars" 选项。

返回:
selfestimator instance

估计器实例。

set_params(**params)[源]#

设置此估计器的参数。

此方法适用于简单的估计器以及嵌套对象(如 Pipeline)。后者具有 <component>__<parameter> 形式的参数,以便可以更新嵌套对象的每个组件。

参数:
**paramsdict

估计器参数。

返回:
selfestimator instance

估计器实例。

transform(X)[源]#

根据 feature_range 缩放 X 的特征。

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

将要进行变换的输入数据。

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

转换后的数据。