评价是现代社会各领域的一项经常性的工作,是科学做出管理决策的重要依据。随着人们研究领域的不断扩大,所面临的评价对象日趋复杂,如果仅依据单一指标对事物进行评价往往不尽合理,必须全面地从整体的角度考虑问题,多指标综合评价方法应运而生。所谓多指标综合评价方法,就是把描述评价对象不同方面的多个指标的信息综合起来,并得到一个综合指标,由此对评价对象做一个整体上的评判,并进行横向或纵向比较。
而在多指标评价体系中,由于各评价指标的性质不同,通常具有不同的量纲和数量级。当各指标间的水平相差很大时,如果直接用原始指标值进行分析,就会突出数值较高的指标在综合分析中的作用,相对削弱数值水平较低指标的作用。因此,为了统一比较的标准,保证结果的可靠性,我们在分析数据之前,需要对原始变量进行一定的处理,即本篇将向大家介绍的数据的标准化处理,将原始数据转化为无量纲、无数量级差异的标准化数值,消除不同指标之间因属性不同而带来的影响,从而使结果更具有可比性。数据标准化处理主要包括指标一致化处理和无量纲化处理两种类型
1 指标一致化
指标一致化处理,主要解决的是数据之间不同性质的问题。例如我们在评价多个不同指标的作用时,某一类指标,数值越大越好,我们称之为正指标,例如诊断符合率、病床平均周转次数等指标;
另有一类指标,数值越小越好,我们称之为逆指标,例如平均住院日、围产期婴儿死亡率等指标。
在这种情况下,如果同时评价这两类指标的综合作用,由于他们的作用方向不同,将不同性质的指标作用直接相加,并不能正确反映不同作用方向产生的综合结果,此时我们就需要对逆指标进行一致化处理,改变逆指标的性质和作用方向,使所有指标作用方向一致化,从而得出适宜的结果。
针对逆指标一致化处理的方法主要有两种:
- 倒数一致化,即对原始数据取倒数, X ′ = 1 / x ( x > 0 ) X' = 1 / x(x>0) X′=1/x(x>0)
- 减法一致化,即利用该指标允许范围内的一个上界值(M),依次减去每一个原始数据, X ′ = M − x X' = M - x X′=M−x
温馨提示: 倒数一致化常常会改变原始数据的分散程度,这种改变会夸大或缩小原始数据的实际差异,对于进行综合评价是不利的。而减法一致化则不改变数据的分散程度,因此结果较倒数一致化而言会更加稳定。
2 无量纲化处理
数据无量纲化处理,主要解决数据之间可比性的问题,这也是我们对数据进行标准化处理的最主要的一个目的。
在实际的应用中,由于不同变量自身的量纲不同,数量级存在较大差异,在进行综合评价时,不同变量所占的作用比重也会有所不同。例如,某个变量的数值在1-10之间,而另一个变量的数值范围在100-1000之间,此时若进行综合评价,从数值的角度,很有可能数值变化范围大的变量,它的绝对作用就会较大,所占的比重较大。
因此,为了消除量纲、变量自身变异和数值大小的影响,比较不同变量之间的相对作用,就需要对数据进行无量纲化处理,将其转化为无量纲的纯数值来进行评价和比较。
2.1 中心化
中心化这种量纲处理方式可能在数据预处理中使用较多,此种处理方式会让数据呈现出一种特征,即数据的平均值一定为0。针对数据进行了压缩大小处理,同时还让数据具有特殊特征(平均值为0)。其计算公式为: x − μ x-\mu x−μ。
2.2 归一化
主要是为了数据处理方便提出来的,把数据映射到0~1范围之内处理,转换函数如下:
y
i
=
x
i
∑
1
n
x
i
2
y_i=\frac{x_i}{\sum_1^n{x_i^2}}
yi=∑1nxi2xi
则新序列
y
1
,
y
2
,
…
,
y
n
∈
[
0
,
1
]
y_1,y_2,…,y_n\in[0,1]
y1,y2,…,yn∈[0,1]且无量纲,并且显然有
∑
i
n
y
i
=
1
\sum_{i}^{n}y_i=1
∑inyi=1。
归一化方法在确定权重时经常用到。针对实际情况,也可能有其他一些量化方法,或者要综合使用多种方法,总之最后的结果都是无量纲化。
2.3 标准化
数据的标准化(normalization
)是将数据按比例缩放,使之落入一个小的特定区间。在某些比较和评价的指标处理中经常会用到,去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权。其中最典型的就是数据的标准化处理,即将数据统一映射到
[
0
,
1
]
[0,1]
[0,1]或
[
−
1
,
1
]
[-1, 1]
[−1,1]区间上,常见的数据标准化的方法有:min-max标准化(Min-max normalization),log
函数转换,atan
函数转换,z-score
标准化(zero-mena normalization
,此方法最为常用),模糊量化法。本文只介绍min-max
法(规范化方法),z-score
法(正规化方法),比例法(归一化方法)。
2.3.1 min-max标准化
Min-Max normalization
也称离差标准化法,是消除变量量纲和变异范围影响最简单的方法。对原始数据的线性变换,使结果落到[0,1]区间,转换函数如下:
y
i
=
x
i
−
m
i
n
{
x
j
}
m
a
x
{
x
j
}
−
m
i
n
{
x
j
}
y_i=\frac{x_i-min\{x_j\}}{max\{x_j\}-min\{x_j\}}
yi=max{xj}−min{xj}xi−min{xj}
其中 m a x x j max{x_j} maxxj为样本数据的最大值, m i n x j min{x_j} minxj为样本数据的最小值。这种方法有一个缺陷就是当有新数据加入时,可能导致max和min的变化,需要重新定义。
经过离差标准化方法处理后,无论原始数据是正值还是负值,该变量各个观察值的数值变化范围都满足0≤X’≤1,并且正指标、逆指标均可转化为正向指标,作用方向一致。但是如果有新数据加入,就可能会导致最大值(Xmax)和最小值(Xmin)发生变化,就需要进行重新定义,并重新计算离差(R)。
2.3.2 z-score 标准化
当我们遇到某个指标的最大值和最小值未知的情况时,或者有超出取值范围的离群数值的时候,就不再适宜计算极差了,此时我们可以采用另一种数据标准化最常用的方法,即Z-score
标准化,也叫标准差标准化法。 经过处理的数据符合标准正态分布,即均值为0,标准差为1,其转化函数为:
y
i
=
x
i
−
μ
σ
y_i=\frac{x_i-\mu}{\sigma}
yi=σxi−μ
其中
μ
\mu
μ为所有样本数据的均值,
μ
=
∑
i
=
1
n
x
i
n
\mu=\frac{\sum_{i=1}^{n}x_i}{n}
μ=n∑i=1nxi,
σ
\sigma
σ为所有样本数据的标准差,
σ
=
(
1
n
−
1
∑
i
=
1
n
(
x
i
−
m
u
)
2
)
\sigma=\sqrt(\frac{1}{n-1}\sum_{i=1}{n}(x_i-mu)^2)
σ=(n−11∑i=1n(xi−mu)2)。
温馨提示:经过Z-score
标准化后,各变量将有约一半观察值的数值小于0,另一半观察值的数值大于0,变量的平均数为0,标准差为1。经标准化的数据都是没有单位的纯数量。它是当前用得最多的数据标准化方法。如果特征非常稀疏,并且有大量的0(现实应用中很多特征都具有这个特点),Z-score
标准化的过程几乎就是一个除0的过程,结果不可预料。
2.3.3 log函数转换
通过以10为底的log
函数转换的方法同样可以实现归一化,先对变量的观察值做变换,
x
=
log
10
(
x
)
x=\log_{10}(x)
x=log10(x),然后除以
log
10
(
m
a
x
)
\log_{10}(max)
log10(max),max
为样本数据最大值,并且所有的数据都要大于等于1,这个结果就会落到[0,1]区间上。其转化函数为:
X
′
=
log
10
X
log
10
m
a
x
X'=\frac{\log_{10}X}{\log_{10}max}
X′=log10maxlog10X
2.3.4 atan函数转换
用反正切函数也可以实现数据的归一化,使用这个方法需要注意的是如果想映射的区间为[0,1],则数据都应该大于等于0,小于0的数据将被映射到[-1,0]区间上。其转化函数为:
X
′
=
a
r
c
t
a
n
(
X
)
∗
2
π
X'=\frac{arctan(X)*2}{\pi}
X′=πarctan(X)∗2
小结
1. 哪些算法需要归一化
- 涉及或隐含距离计算的算法,比如K-means、KNN、PCA、SVM等,一般需要进行归一化
- 梯度下降算法,梯度下降的收敛速度取决于:参数的初始位置到
local minima
的距离,以及学习率η的大小,其实还是距离的计算。 - 采用
sigmoid
等有饱和区的激活函数,如果输入分布范围很广,参数初始化时没有适配好,很容易直接陷入饱和区,导致梯度消失,所以才会出现各种BN,LN等算法。
2. 哪些算法不需要归一化
与距离计算无关的基于树的模型,比如决策树、随机森林等,树中节点的选择只关注当前特征在哪里切分对分类更好,即只在意特征内部的相对大小,而与特征间的相对大小无关。其实归一化的作用就是由绝对变为了相对,所以可以说归一化对于树型模型不那么重要,是一个可选项或者说可以作为一个超参数在训练时进行选择。
参考
- 几种常用数据标准化方法:https://www.jianshu.com/p/fa73a07cd750
- 数据的标准化处理:分享几种常用方法:https://zhuanlan.zhihu.com/p/367771322
- 数据标准化/归一化normalization:https://www.cnblogs.com/pejsidney/p/8031250.html
- 7种不同的数据标准化(归一化)方法总结:https://blog.csdn.net/Tw6cy6uKyDea86Z/article/details/124357802