====== 数据分析 ====== ===== 数据标准化 ===== 一 数据标准化的定义 在进行数据分析之前,通常要收集大量不同的相关指标,每个指标的性质、量纲、数量级、可用性等特征均可能存在差异,导致我们无法直接用其分析研究对象的特征和规律。当各指标间的水平相差很大时,如果直接用指标原始值进行分析,数值较高的指标在综合分析中的作用就会被放大,相对地,会削弱数值水平较低的指标的作用。 比如,在评价不同时期的物价指数时,较低价格的蔬菜和较高价格的家电的价格涨幅都可以被纳入其中,但是由于它们的价格水平差异较大,如果直接用其价格做分析,会使价格水平较高的家电在综合指数中的作用被放大。因此,为了保证结果的可靠性,需要对原始指标数据进行变换处理,使不同的特征具有相同的尺度。 标准化指将数据按比例缩放,使之落入一个小的特定区间。在某些比较和评价的指标处理中经常会用到,去除数据的单位限制,将其转化为无量纲的纯数值,便于不同单位或量级的指标能够进行比较和加权。 二 数据标准化的原因 1.某些算法要求样本具有零均值和单位方差; 需要消除样本不同属性具有不同量级时的影响: ①数量级的差异将导致量级较大的属性占据主导地位; ②数量级的差异将导致迭代收敛速度减慢; ③依赖于样本距离的算法对于数据的数量级非常敏感。 在不同的问题中,标准化的意义不同: (1)在回归预测中,标准化是为了让特征值有均等的权重; (2)在训练神经网络的过程中,通过将数据标准化,能够加速权重参数的收敛; (3)主成分分析中,需要对数据进行标准化处理;默认指标间权重相等,不考虑指标间差异和相互影响。 三 数据标准化的方法 目前数据标准化方法有很多,大概可以分为:直线型方法(如极值法、标准差法)、折线型方法(如三折线法)、曲线型方法(如半正态性分布)。不同的标准化方法,对系统的评价结果会产生不同的影响,而且在数据标准化方法的选择上,还没有通用的法则可以遵循。 常见的方法有:min-max标准化(min-max normalization)、log函数转换、atan函数转换、z-score标准化(zero-mena normalization,此方法比较常用)、模糊量化法。 1.min-max标准化(归一化) 也叫极差标准化法,是消除变量量纲和变异范围影响最简单的方法。 具体方法:找出每个属性的最小值和最大值,将其一个原始值x通过min-max标准化映射成在区间[0,1]中的值x'。 公式:X' = (X-Xmin) / (Xmax-Xmin) 无论原始数据是正值还是负值,经过处理后,该变量各个观察值的数值变化范围都满足0≤X'≤1,并且正指标、逆指标均可转化为正向指标,作用方向一致。 但如果有新数据加入,就可能会导致最大值(Xmax)和最小值(Xmin)发生变化,就需要进行重新定义,并重新计算极差(R)。 2.z-score标准化(规范化) 当遇到某个指标的最大值和最小值未知的情况,或有超出取值范围的离群数值时,上面的方法就不再适用了,可以采用另一种数据标准化最常用的方法,即Z-score标准化,也叫标准差标准化法。 它基于原始数据的均值(mean)和标准差(standarddeviation)进行数据的标准化,将A的原始值x使用z-score标准化到x'。 z-score标准化方法适用于属性A的最大值和最小值未知的情况,或有超出取值范围的离群数据的情况。 新数据=(原数据- 均值)/ 标准差 均值和标准差都是在样本集上定义的,而不是在单个样本上定义的。标准化是针对某个属性的,需要用到所有样本在该属性上的值。 数据标准化最常用的是这两种:极差标准化法、Z-score标准化法。 3.线性比例标准化法 (1)极大化法 对于正指标,取该指标的最大值Xmax,然后用该变量的每一个观察值除以最大值,即:X' =X / Xmax。(X≥0) (2)极小化法 对于逆指标,取该指标的最小值Xmin,然后用该变量的最小值除以每一个观察值,即:X' = Xmin / X。(X>0) 注:以上两种方法不适用于X<0的情况。 正指标:是一种评估指标,指标数值大小与司法绩效高低一致;正指标越大越好。 逆指标:是强度相对的指标,指标数值大小与司法绩效高低相反;逆指标越小越好。 对于逆向指标使用线性比例法进行标准化后,实际上是进行了非线性的变换,变换后的指标无法客观地反映原始指标的相互关系,转换时需要注意。 4.log函数标准化法 首先对该变量的每一个观察值取以10为底的log值,然后再除以该指标最大值(Xmax)的log值,即: X' = log10(X) / log10 (Xmax) 注:x=log10(X)的区间不一定在[0,1];Xmax为样本最大值;此方法要求X≥1。 5.反正切函数标准化法 通过三角函数中的反正切函数(arctan)也可以实现数据的标准化转换。 计算方法:X' = arctan(X)*2 / π 注:如果原始数据为正、负实数,则标准化后的数据区间为-1≤X'≤1;若要得到0≤X'≤1区间,则原始数据应该保证X≥0。 6.atan函数转换 用反正切函数也可以实现数据的归一化,使用这个方法需要注意的是如果想映射的区间为[0,1],则数据都应该大于等于0,小于0的数据将被映射到[-1,0]区间上。 7.归一化 把数据映射到0-1范围内,使数据处理更加便捷。 Xn=Xi/(X1+X2+……+Xn);Xn的和=1。 四 标准化的意义 标准化、归一化的区别: 归一化是标准化的一种,它的缩放仅与最大、最小值的差别有关;输出范围在0—1间; 标准化缩放和每个值都有关系,通过方差体现出来。当数据更集中时,数据标准化后更分散;数据分布很广时,数据标准化后会更集中。输出范围是一个特定的区间,在-∞—+∞。 如果对输出结果范围有要求,用归一化; 如果数据较稳定,不存在极端的最大最小值,用归一化; 如果数据有异常值和较多噪音,用标准化,可间接通过中心化避免异常值、极端值的影响。 数据标准化其实是对向量X按比例压缩再平移,本质上是一种线性变换。线性变换又很多良好的性质,这决定了对数据变换后的数据反而能提高数据效率。比如:线性变换不改变原始数据的数值排序。这保证了数据变换后依然有意义,因为线性变换保持线性组合与线性关系式不变。