一、数据的标准化和归一化
1.概念
数据的标准化(normalization)将数据按比例缩放,使之落入一个小的特定区间。在某些比较和评价的指标处理中经常会用到,去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权。其中最典型的就是数据的归一化处理,即将数据统一映射到[0,1]区间上。
2.方法
数据标准化方法有多种,归结起来可以分为直线型方法(极值法、标准差法)、折线型方法(三折线法)、曲线型方法(半正态性分布)。不同的标准化方法,对系统的评价结果会产生不同的影响,然而不幸的是,在数据标准化方法的选择上,还没有通用的法则可以遵循。
(1)数据缩放的本质
在这个回答下,我们对一维数据的缩放有如下定义:
可以再稍微变形一下: (公式1)
事实上就是对向量 按照比例压缩再进行平移 。所以归一化和标准化的本质就是一种线性变换
(2)常见的数据归一化方法
min-max标准化(Min-max normalization)
也叫离差标准化,是对原始数据的线性变换,使结果落到[0,1]区间,转换函数如下:
其中max为样本数据的最大值,min为样本数据的最小值。这种方法有一个缺陷就是当有新数据加入时,可能导致max和min的变化,需要重新定义。其中matlab实现如下图:
log函数转换
通过以10为底的log函数转换的方法同样可以实现归一下,具体方法如下:
看了下网上很多介绍都是x*=log10(x),其实是有问题的,这个结果并非一定落到[0,1]区间上,应该还要除以log10(max),max为样本数据最大值,并且所有的数据都要大于等于1。
atan函数转换
用反正切函数也可以实现数据的归一化:
使用这个方法需要注意的是如果想映射的区间为[0,1],则数据都应该大于等于0,小于0的数据将被映射到[-1,0]区间上。
而并非所有数据标准化的结果都映射到[0,1]区间上,其中最常见的标准化方法就是Z标准化,也是SPSS中最为常用的标准化方法:
z-score 标准化(zero-mean normalization)
也叫标准差标准化,经过处理的数据符合标准正态分布,即均值为0,标准差为1,其转化函数为:
其中μ为所有样本数据的均值,σ为所有样本数据的标准差
3.特点
(1)标准化特点
对不同特征维度的伸缩变换的目的是使得不同度量之间的特征具有可比性。同时不改变原始数据的分布。好处:
1 使得不同度量之间的特征具有可比性,对目标函数的影响体现在几何分布上,而不是数值上
2 不改变原始数据的分布
(2)归一化特点
对不同特征维度的伸缩变换的目的是使各个特征维度对目标函数的影响权重是一致的,即使得那些扁平分布的数据伸缩变换成类圆形。这也就改变了原始数据的一个分布。好处:
1 提高迭代求解的收敛速度
2 提高迭代求解的精度
4.区别
归一化:缩放仅仅跟最大、最小值的差别有关。 输出范围在0-1之间
标准化:缩放和每个点都有关系,通过方差(variance)体现出来。与归一化对比,标准化中所有数据点都有贡献(通过均值和标准差造成影响)。输出范围是负无穷到正无穷
5.应用
1.如果对输出结果范围有要求,用归一化
2.如果数据较为稳定(图像或是视频的数据值处于固定区间),不存在极端的最大最小值,用归一化
3.如果数据存在异常值和较多噪音,用标准化,可以间接通过中心化避免异常值和极端值的影响
二、参考文献
[1]https://blog.csdn.net/m0_37407756/article/details/80702886
[2]https://zhuanlan.zhihu.com/p/31635022
[3]https://blog.csdn.net/xuezhan123/article/details/79822831
[4]https://www.zhihu.com/question/20467170/answer/222792995