当输入数值属性有不同的尺度,比如有的属性变化范围为-1到1,而有的属性变化范围为1到1000,机器学习算法通常不会表现的很好,因而需要对数值属性进行特征缩放。
有两个常用的方法可以使得所有的属性有相同的尺度, min-max scaling 和 standardization。
- MinMaxXScale 也称 normalization
class 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
其中,min, max = feature_range
参数:
- fature_range : tuple(min, max), default=(0,1)
决定了特征值的缩放范围,从转换公式的第二行就很明显的看出了。 - copy: boolean, opetional dafault True
如果copy=False, 执行的是行正则化,并且是在原数据上操作
from sklearn