最小最大值缩放 #
- sklearn.preprocessing.minmax_scale(X, feature_range=(0, 1), *, axis=0, copy=True)[source]#
通过将每个特征缩放至给定范围来转换特征。
此估计器单独缩放和平移每个特征,以便它在训练集上位于给定范围内,即零到一之间。
变换公式为(当
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形状为 (n_samples, n_features) 的类数组
数据。
- feature_range元组 (min, max),默认值为 (0, 1)
所需转换数据的范围。
- axis{0, 1},默认值为 0
用于缩放的轴。如果为 0,则独立缩放每个特征;否则(如果为 1),则缩放每个样本。
- copy布尔值,默认值为 True
如果为 False,则尝试避免复制并就地缩放。但这并非始终保证能够就地进行;例如,如果数据是具有 int 数据类型的 numpy 数组,即使 copy=False,也会返回副本。
- 返回值:
- X_tr形状为 (n_samples, n_features) 的 ndarray
转换后的数据。
警告
数据泄露风险 除非您知道自己在做什么,否则请不要使用
minmax_scale
。一个常见的错误是在将数据拆分为训练集和测试集 *之前* 将其应用于整个数据。这将使模型评估产生偏差,因为信息会从测试集泄漏到训练集。一般来说,我们建议在 Pipeline 中使用MinMaxScaler
以防止大多数数据泄露风险:pipe = make_pipeline(MinMaxScaler(), LogisticRegression())
。
另请参见
最小最大值缩放 (MinMaxScaler)
使用 Transformer API(例如,作为预处理
Pipeline
的一部分)执行到给定范围的缩放。
备注
有关不同缩放器、转换器和归一化器的比较,请参见: 比较不同缩放器对包含异常值的数据的影响。
示例
>>> from sklearn.preprocessing import minmax_scale >>> X = [[-2, 1, 2], [-1, 0, 1]] >>> minmax_scale(X, axis=0) # scale each column independently array([[0., 1., 1.], [1., 0., 0.]]) >>> minmax_scale(X, axis=1) # scale each row independently array([[0. , 0.75, 1. ], [0. , 0.5 , 1. ]])
图库示例#
用于数字分类的受限玻尔兹曼机特征
比较不同缩放器对包含异常值的数据的影响