概述
MinMaxScaler将通过估计器分别缩放和转换每个元素成给定范围的值。(如:[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的范围(feature_range为MinMaxScaler的参数可以设置最终转换的范围)
实际转换过程公式如下:
X_scaled = scale * X + min - X.min(axis=0) * scale)
# 其中scale = (max - min) / (X.max(axis=0) - Xmin(axis=0))
常用的使用MinMaxScaler的方法
1.将数据放缩到给定的范围
fit_transform(self, X[,y])
计算并将数据放缩到给定的范围,fit的作用:计算给定数据集X的最大 / 最小用于后面的放缩;而transform的作用:将数据集X放缩到给定的范围内。
2.恢复给定范围的数据
inverse_transfom(self, X)
根据给定的范围恢复数据
例子
from sklearn.preprocessing import MinMaxScaler
data = np.array([[1., 2.], [0, 4.], [-1., 6.], [1.5, 8.]])
scaler = MinMaxScaler(feature_range=(-1., 1.))
print(scaler.fit_transform(data))
OUT:
X = scaler.fit_transform(data)
print(scaler.inverse_transform(X))
OUT:
希望这篇文章对大家的学习有所帮助!