数据清洗
上QQ阅读APP看书,第一时间看更新

1.2 数据标准化

1.2.1 数据标准化简介

在大数据分析前,为了统一比较的标准,保证结果的可靠性,需要对原始指标数据进行标准化处理。

数据的标准化,是通过一定的数学变换方式,将原始数据按照一定的比例进行转换,使之落入一个小的特定区间内,例如0~1或-1~1的区间内,消除不同变量之间性质、量纲、数量级等特征属性的差异,将其转化为一个无量纲的相对数值。因此标准化数值是使各指标的数值都处于同一个数量级别上,从而便于不同单位或数量级的指标能够进行综合分析和比较。

例如,在比较学生成绩时,一个百分制的变量与一个五分制的变量放在一起是无法比较的。只有通过数据标准化,把它们都标准化到同一个标准才具有可比性。

又比如,在利用大数据预测房价时,由于全国各地的工资收入水平是不同的,因此原始的数据值对房价的影响程度是不一样的,而标准化处理可以使得不同的特征具有相同的尺度。

因此,原始数据经过标准化处理后,能够转化为无量纲化指标测评值,各指标值处于同一数量级别,可进行综合测评分析。图1-4所示为将数据进行标准化处理前后的对比。

图1-4 数据标准化处理前后的对比

1.2.2 数据标准化方法

目前有许多种数据标准化方法,常用的有min-max标准化(也称最小-最大标准化)、z-score标准化和小数定标标准化等。下面对数据标准化的常用方法进行介绍。

(1)min-max标准化

min-max标准化方法是对原始数据进行线性变换。设minAmaxA分别为属性A的最小值和最大值,将A的原始值x通过min-max标准化方法映射成区间[0,1]中的值,其公式为:

新数据=(x-minA)/(maxA-minA

这种方法适用于原始数据的取值范围已经确定的情况。例如在处理自然图像时,人们获得的像素值在[0,255]区间中,常用的处理方法是将这些像素值除以255,使它们成为[0,1]区间中的值。

(2)z-score标准化

z-score标准化基于原始数据的均值(m)和标准差(σ)进行数据的标准化。将属性A的原始值v使用z-score标准化到v′的计算公式为:

新数据=(v-m)/σ

z-score标准化方法适用于属性A的最大值和最小值未知的情况,或有超出取值范围的离群数据的情况。

在分类和聚类算法中需要使用距离来度量相似性时,或者使用PCA(协方差分析)技术进行降维时,z-score标准化表现更好。z-score标准化要求原始数据的分布近似为高斯(或叫正态)分布,图1-5所示为均值μ=0、标准差σ=1的标准高斯分布曲线。

图1-5 z-score标准化

(3)小数定标(Decimal Scaling)标准化

小数定标标准化通过移动数据的小数点位置来进行标准化。小数点移动多少位取决于属性A的取值中的最大绝对值。将属性A的原始值x使用小数定标标准化到y的计算公式是:

y=x/(10*j)

其中,j是满足条件的最小整数。

例如,假定属性A的值的范围是[-986,917],A的最大绝对值为986,使用小数定标标准化,使用1000(即j=3)去除每个值,这样,-986被规范化为-0.986。

1.2.3 数据标准化的实例

图1-6所示为原始数据,图1-7所示为经过z-score标准化后的数据,标准化后的数据均值为0,方差为1。

图1-6 原始数据

图1-7 标准化后的数据

从图1-7可以看出,数据标准化最典型的方法就是数据的归一化处理,即将数据统一映射到[0,1]区间上。