sklearn.preprocessing.MinMaxScaler
sklearn.preprocessing.MinMaxScaler(feature_range=(0, 1), copy=True)
将数据的每一个特征缩放到给定的范围,将数据的每一个属性值减去其最小值,然后除以其极差(最大值 - 最小值)
原理实现:
X_std = (X - X.min(axis=0)) / (X.max(axis=0) - X.min(axis=0))
缩放回去:
X_scaled = X_std * (max - min) + min
Parameters(参数):
feature_range : tuple (min, max), default=(0, 1)
所需的转换数据范围。
copy : boolean, optional, default True
是否将转换后的数据覆盖原数据,默认为false.
>>> from sklearn.preprocessing import MinMaxScaler
>>> data = [[-1, 2], [-0.5, 6], [0, 10], [1, 18]]
>>> scaler = MinMaxScaler()
>>> print(scaler.fit(data))
MinMaxScaler(copy=True, feature_range=(0, 1))
>>> 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. ]]
注意:
NaNs(缺失值)在fit中忽视,在transform中保持。
Attributes(属性):
**min_ : 每个特征调整的最小值
scale_ :每个特征数据缩放的比例
data_min_ : 每个特征的最小值
data_max_ : 每个特征的最大值
data_range_ :*数据中看到的每个特征范围(data_max_-data_min_)
Methods(方法):
-
fit(self, X[, y]) 计算用于以后缩放的最小值和最大值
-
fit_transform(self, X[, y]) Fit 数据, 然后 transform
-
get_params(self[, deep]) 得到这个estimator .的参数
-
inverse_transform(self, X) 根据feature_range撤消X的缩放比例
-
partial_fit(self, X[, y]) Online computation of
min and max on X for later scaling -
set_params(self, **params)
设置此 estimator(估计器,评估器) 的参数 -
transform(self, X) 根据feature_range缩放X 的特征