一、什么是数据规范化
数据规范化是数据挖掘中数据变换的一种方式,数据变换将数据转换或统一成适合于挖掘的形式。而数据规范化是指将被挖掘对象的属性数据按比例缩放,使其落入一个小的特定区间(如[-1, 1]或[0,1])。
二、数据规范化的作用
对属性值进行规范化常用于涉及神经网络或距离度量的分类算法和聚类算法中。比如使用神经网络向后传播算法进行分类挖掘时,对训练元组中度量每个属性的输入值进行规范化有助于加快学习阶段的速度。对于基于距离度量相异度的方法,数据规范化可以让所有的属性具有相同的权重。
三、数据规范化的三种方法
数据规范化的常用方法有三种:按小数定标规范化、最小-最大值规范化和z-score规范化。
1、按小数定标规范化
通过移动属性值的小数点位置进行规范化,通俗的说就是将属性值除以10的j次幂。公式为:
其中,j 是使得Max(||)<1的最大整数。比如,假设属性A的取值区间是A
[-986,917]。则A的最大绝对值为986,显然只要将属性A中的值分别除以1000,就满足Max(|
|)<1,这时 j=3。-986规范化后为-0.986,而917被规范化为0.917。达到了将属性值缩到小的特定区间[-1,1]的目标。
优点:直观简单。
缺点:并没有消除属性间的权重差异。
2、最小-最大值规范化
最小-最大值规范化对原始数据进行了线性变化。假设 和
分别表示属性A的最小值和最大值。则最小-最大值规范化计算公式为:

公式中, 表示对象i的原属性值,
表示规范化得到属性值。 [
,
]表示A属性的所有值规范化后落入的区间。
举例应用:假设公司中员工工资income的最小和最大值分别12000美元和98000美元,现在要把income映射到区间[0,1]中。对income值为73600美元进行最小-最大值规范化后的结果。
根据描述,=12000,
=98000,规范化后属性取值区间为[0,1],即
=1,
=0,代入公式计算:
优点:可灵活指定规范化后的取值区间,可以消除不同属性之间的权重差异。
缺点:需要预先知道该属性的最大值与最小值;另一方面,该方法保持原始数据值之间的联系,如果今后的输入落在原始数据值域之外,该方法将发生“越界”错误。对离群点敏感。(离群点是只偏离中心水平的哪些极大值和极小值)
3、z-score规范化
这种方法是基于属性的均值和标准差进行规范化。计算公式为:
其中 表示对象i的原属性值,
表示规范化的属性值,
表示属性A的平均值,
表示属性A的标准差,两者的计算公式如下:
举例应用:假设属性income的均值和标准差分别为54000美元和16000美元。使用z-score规范化,值73600美元转换为:

优点:不需要知道数据集的最大值和最小值,对离群点规范化效果好;
缺点:计算复杂度高。