数据的标准化(normalization)是将数据按比例缩放,使之落入一个小的特定区间。在某些比较和评价的指标处理中经常会用到,去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权。
其中最典型的就是数据的归一化处理,即将数据统一映射到[0,1]区间上,常见的数据归一化的方法有:
- min-max标准化
- log函数转换
- atan函数转换
- z-score标准化
- z-score改进版
min-max标准化
这种方法也叫离差标准化, 对原始数据进行线性变化, 使数据落在 [0,1] 之间, 具体的转化函数为:
x∗=x−minmax−min
其中max为当前样本数据中, 该属性的最大值, min为最小值.
这种方法处理速度快, 但是, 当有新的数据加入时, max和min发生变化, 需要重新归一化.
log函数转换
通过以10为底的log函数转化的方法同样可以实现归一化, 具体公式如下:
x∗=log10(x)log10(max)
atan函数转化
使用反正切函数也可以实现数据的归一化:
x∗=atan(x)∗2π
这种方法将所有的数据映射到 [−1,1] 上, 小于0的数据将映射到 [−1,0] 上.
z-score 标准化
这种方法也叫标准差标准化, 经过处理的数据符合标准正态分布, 即均值为0, 标准差为1, 转换函数为:
x∗=x−μσ
其中, μ 为样品的均值, σ 为样品的标准差.
改进型 z-score 标准化
z-score 转化函数中的均值和标准差受离群点影响较大, 因此需要对原有的公式进行改进.
首先使用中位数代替均值, 使用绝对标准差代替标准差.
绝对标准差的计算公式:
σA=∑i=1m|xi−μ|
其中, μ 为样品的均值或者中位数.