MinMaxScaler#
- 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元组 (min, max), 默认=(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 版本中新增。
另请参见
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)[source]#
计算用于后续缩放的最小值和最大值。
- 参数:
- X形状为 (n_samples, n_features) 的类数组
用于计算每个特征的最小值和最大值的数据,这些值用于后续沿特征轴的缩放。
- yNone
忽略。
- 返回:
- self对象
拟合后的缩放器。
- fit_transform(X, y=None, **fit_params)[source]#
拟合数据,然后进行转换。
使用可选参数
fit_params
将转换器拟合到X
和y
,并返回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)[source]#
获取转换的输出特征名称。
- 参数:
- input_features字符串类数组或 None, 默认=None
输入特征。
如果
input_features
为None
,则使用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()[source]#
获取此对象的元数据路由。
请查看用户指南了解路由机制的工作原理。
- 返回:
- routingMetadataRequest
封装路由信息的
MetadataRequest
。
- get_params(deep=True)[source]#
获取此估计器的参数。
- 参数:
- deep布尔型, 默认=True
如果为 True,将返回此估计器及其包含的作为估计器的子对象的参数。
- 返回:
- params字典
参数名称及其对应的值。
- inverse_transform(X)[source]#
根据 feature_range 撤销 X 的缩放。
- 参数:
- X形状为 (n_samples, n_features) 的类数组
将要转换的输入数据。它不能是稀疏的。
- 返回:
- X_original形状为 (n_samples, n_features) 的 ndarray
转换后的数据。
- partial_fit(X, y=None)[source]#
在 X 上在线计算最小值和最大值,用于后续缩放。
所有的 X 都作为一个批次处理。这适用于因
n_samples
数量非常大而无法执行fit
,或者 X 从连续流中读取的情况。- 参数:
- X形状为 (n_samples, n_features) 的类数组
用于计算均值和标准差的数据,这些值用于后续沿特征轴的缩放。
- yNone
忽略。
- 返回:
- self对象
拟合后的缩放器。
- set_output(*, transform=None)[source]#
设置输出容器。
请参阅介绍 set_output API以获取如何使用该 API 的示例。
- 参数:
- transform{“default”, “pandas”, “polars”}, 默认=None
配置
transform
和fit_transform
的输出。"default"
:转换器的默认输出格式"pandas"
:DataFrame 输出"polars"
:Polars 输出None
:转换配置不变
在 1.4 版本中新增: 新增了
"polars"
选项。
- 返回:
- self估计器实例
估计器实例。