(1)最大最小值归一化(min-max normalization):将数值范围缩放到 [0, 1] 区间里html
(2)均值归一化(mean normalization):将数值范围缩放到 [-1, 1] 区间里,且数据的均值变为0算法
(3)标准化 / z值归一化(standardization / z-score normalization):将数值缩放到0附近,且数据的分布变为均值为0,标准差为1的标准正态分布(先减去均值来对特征进行 中心化 mean centering 处理,再除以标准差进行缩放)网络
(4)最大绝对值归一化(max abs normalization ):也就是将数值变为单位长度(scaling to unit length),将数值范围缩放到 [-1, 1] 区间里dom
(5)稳键标准化(robust standardization):先减去中位数,再除以四分位间距(interquartile range),由于不涉及极值,所以在数据里有异常值的状况下表现比较稳健机器学习
* 有一些时候,只对数据进行中心化和缩放是不够的,还需对数据进行白化(whitening)处理来消除特征间的线性相关性。学习
归一化(normalization):归一化是将样本的特征值转换到同一量纲下,把数据映射到[0,1]或者[-1, 1]区间内。优化
标准化(standardization):标准化是将样本的特征值转换为标准值(z值),每一个样本点都对标准化产生影响。spa
1. 统一特征的权重&提高模型准确性rest
若是某个特征的取值范围比其余特征大不少,那么数值计算(好比说计算欧式距离)就受该特征的主要支配。但实际上并不必定是这个特征最重要,一般须要把每一个特征当作同等重要。归一化/标准化数据可使不一样维度的特征放在一块儿进行比较,能够大大提升模型的准确性。orm
2. 提高梯度降低法的收敛速度
在使用梯度降低法求解最优化问题时, 归一化/标准化数据后能够加快梯度降低的求解速度。
在须要使用距离来度量类似性的算法中,或者使用PCA技术进行降维的时候,一般使用标准化(standardization)或均值归一化(mean normalization)比较好,但若是数据分布不是正态分布或者标准差很是小,以及须要把数据固定在 [0, 1] 范围内,那么使用最大最小值归一化(min-max normalization)比较好(min-max 经常使用于归一化图像的灰度值)。可是min-max比较容易受异常值的影响,若是数据集包含较多的异常值,能够考虑使用稳键归一化(robust normalization)。对于已经中心化的数据或稀疏数据的缩放,比较推荐使用最大绝对值归一化(max abs normalization ),由于它会保住数据中的0元素,不会破坏数据的稀疏性(sparsity)。
经过梯度降低法求解的模型须要进行特征缩放,这包括线性回归(Linear Regression)、逻辑回归(Logistic Regression)、感知机(Perceptron)、支持向量机(SVM)、神经网络(Neural Network)等模型。此外,近邻法(KNN),K均值聚类(K-Means)等须要根据数据间的距离来划分数据的算法也须要进行特征缩放。主成分分析(PCA),线性判别分析(LDA)等须要计算特征的方差的算法也会受到特征缩放的影响。
决策树(Decision Tree),随机森林(Random Forest)等基于树的模型不须要进行特征缩放,由于特征缩放不会改变样本在特征上的信息增益。
参考:http://sklearn.lzjqsdd.com/modules/preprocessing.html
https://sebastianraschka.com/Articles/2014_about_feature_scaling.html
https://scikit-learn.org/stable/modules/preprocessing.html#preprocessing-scaler