数据归一化
数据归一化
均值和方差
Min-Max归一化
将数据归一到[0,1]
归一化后的数据范围为 [0, 1],其中 min(x)、max(x)分别求样本数据的最小值和最大值。
-
数据映射到指定的范围内进行处理。
-
该方法将数据进行一次线性变换,将数据映射到[0,1]区间。Min-Max归一化不改变数据的分布。
-
缺点为,过度依赖最大最小数,且容易受到离群点、异常数据的影响。
def MaxMinNormalization(x,Max,Min):
x = (x - Min) / (Max - Min);
return x
Mean 归一化
将数值范围缩放到 [-1, 1] 区间里,且数据的均值变为0
Z-Score标准化
归一化后的数据范围为实数集,其中 μ、σ分别为样本数据的均值和标准差。
将数值缩放到0附近,且数据的分布变为均值为0,标准差为1的标准正态分布
Z-Score归一化将数据尽可能将原数据转换为符合均值为0,标准差为1的标准正态分布的新数据。
作用:
- 1、提升模型的收敛速度(加快梯度下降的求解速度)
- 2、提升模型的精度(消除量级和量纲的影响)
- 3、简化计算(与归一化的简化原理相同)
对比和比较
相同:都能取消由于量纲不同引起的误差,都是一种线性变换
不同:归一化是为了消除纲量压缩到[0,1]区间;标准化只是调整特征整体的分布。
Min-max归一化和mean归一化: 适合处理规定范围的数据, 可以将数据统一到规定范围呢,同时 对异常值比较敏感
标准化: 将数据分布处理为 均值为0,标准差为1 的分布, 对数据异常,最值不敏感
场景:
1、分类、聚类算法中,需要使用距离来度量相似性,采用标准化变现更好
2、在不涉及距离度量、协方差计算、数据不符合正太分布,可以使用归一化
为什么需要数据处理
1、统一量纲,需要消除样本不同属性具有不同量级时的影响
2、防止对某些数据的过多依赖,平衡各特征的贡献,统一特征的权重 & 提升模型准确性
3、程序运行时收敛加快。避免一些不必要的数值,提高数值稳定性,。防止偏差
哪些模型需要进行特征缩放
通过梯度下降法求解的模型需要进行特征缩放,这包括线性回归(Linear Regression)、逻辑回归(Logistic Regression)、感知机(Perceptron)、支持向量机(SVM)、神经网络(Neural Network)等模型。此外,近邻法(KNN),K均值聚类(K-Means)等需要根据数据间的距离来划分数据的算法也需要进行特征缩放。主成分分析(PCA),线性判别分析(LDA)等需要计算特征的方差的算法也会受到特征缩放的影响。
决策树(Decision Tree),随机森林(Random Forest)等基于树的分类模型不需要进行特征缩放,因为特征缩放不会改变样本在特征上的信息增益。
参考资料
https://mp.weixin.qq.com/s/DYELe3U7AfY20LkV7A3Ydg
https://juejin.cn/post/7225794515156058168?searchId=202311201637128502D417920356F1DC9E