最小最大缩放器#

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

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

此估计器会单独缩放和平移每个特征,使其在训练集上的范围在给定范围内,例如 0 到 1 之间。

变换公式如下:

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 不会减少异常值的影响,而是将其线性缩放到固定范围内,其中出现频率最高的数据点对应于最大值,最小数据点对应于最小值。有关示例可视化,请参考 比较 MinMaxScaler 与其他缩放器

用户指南 中了解更多信息。

参数:
feature_range元组 (最小值, 最大值), 默认=(0, 1)

变换后数据的期望范围。

copy布尔值, 默认=True

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

clip布尔值, 默认=False

设置为 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))

0.17 版本新增:scale_ 属性。

data_min_形状为 (n_features,) 的 ndarray

数据中每个特征的最小值

0.17 版本新增:data_min_

data_max_形状为 (n_features,) 的 ndarray

数据中每个特征的最大值

0.17 版本新增:data_max_

data_range_形状为 (n_features,) 的 ndarray

数据中每个特征的范围 (data_max_ - data_min_)

0.17 版本新增:data_range_

n_features_in_整数

拟合期间看到的特征数量。

0.24 版本新增。

n_samples_seen_整数

估计器处理的样本数。它将在对 fit 的新调用时重置,但在 partial_fit 调用中会递增。

feature_names_in_形状为 (n_features_in_,) 的 ndarray

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

1.0 版本新增。

另请参阅

最小最大缩放

没有估计器 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)[源代码]#

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

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

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

yNone

忽略。

返回:
self对象

已拟合的缩放器。

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

拟合数据,然后变换它。

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

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

输入样本。

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

目标值(对于无监督变换则为 None)。

**fit_params字典

附加拟合参数。

返回:
X_new形状为 (n_samples, n_features_new) 的 ndarray 数组

变换后的数组。

get_feature_names_out(input_features=None)[源代码]#

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

参数:
input_features字符串类数组或 None,默认值为 None

输入特征。

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

  • 如果 input_features 是类数组,则如果定义了 feature_names_in_,则 input_features 必须与 feature_names_in_ 匹配。

返回:
feature_names_out字符串对象的 ndarray

与输入特征相同。

get_metadata_routing()[源代码]#

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

请查看 用户指南,了解路由机制的工作原理。

返回:
routingMetadataRequest

一个 MetadataRequest,封装了路由信息。

get_params(deep=True)[source]#

获取此估计器的参数。

参数:
deep布尔值,默认为 True

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

返回:
params字典

参数名称与其值的映射。

inverse_transform(X)[source]#

根据 feature_range 取消 X 的缩放。

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

将要转换的输入数据。它不能是稀疏的。

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

转换后的数据。

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

在线计算 X 的最小值和最大值,以便稍后进行缩放。

所有 X 都作为单个批次进行处理。这适用于由于样本数量 (n_samples) 非常大,或者因为 X 从连续流中读取而无法使用 fit 的情况。

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

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

yNone

忽略。

返回:
self对象

已拟合的缩放器。

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

设置输出容器。

有关如何使用 API 的示例,请参见 Introducing the set_output API

参数:
transform{"default", "pandas", "polars"},默认为 None

配置 transformfit_transform 的输出。

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

  • "pandas":DataFrame 输出

  • "polars":Polars 输出

  • None:转换配置保持不变

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

返回:
self估计器实例

估计器实例。

set_params(**params)[source]#

设置此估计器的参数。

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

参数:
**params字典

估计器参数。

返回:
self估计器实例

估计器实例。

transform(X)[source]#

根据 feature_range 缩放 X 的特征。

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

将要转换的输入数据。

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

转换后的数据。