数据变换主要是对数据进行规范化处理、连续变量的离散化及变量属性的构造,将数据转换成适合进行数据处理的描述形式,提高数据挖掘的质量。
常见的数据变换策略如下。
(1)简单函数变换:对原始数据进行某些数学函数变换,如平方、开方、取对数、差分运算等。简单函数变换常用来将不具有正态分布的数据变换成具有正态分布的数据;在时间序列分析中,有时简单的对数变换或者差分运算可以将非平稳序列转换成平稳序列。
(2)平滑处理:除去数据中的噪声,常用方法包括分箱、回归和聚类。
(3)聚集处理:对数据进行汇总或聚集。例如,对每天的销售额进行汇总后可以获得每月或每年的销售总额。这一操作常用于对数据进行多粒度的分析。
(4)数据泛化处理:用更高层次的概念取代低层次的数据对象。例如,年龄属性可以映射到更高层次的概念,如年轻、中年和老年。
(5)规范化处理:将属性值按比例缩放,使之落入一个特定的区间,如区间[0,1],从而降低数据不同量纲和幅度的影响,使各属性具有相同的尺度,能够加速机器学习等数据模型的学习速度。常用的数据规范化处理方法包括Min-Max规范化、Z-Score规范化和小数定标规范化等。
(6)属性构造处理:根据已有属性集构造新的属性,后续数据处理直接使用新增的属性。合适的属性可以简化数据挖掘模型,甚至帮助发现数据属性之间的相互关系。例如,根据已知的质量和体积属性,可以计算出新的属性“密度”。
下面重点介绍数据的规范化处理。规范化处理就是将一个属性取值范围投射到一个特定范围内,以消除数值型属性因大小不一而造成挖掘结果出现偏差,常用于神经网络、基于距离计算的最近邻分类和聚类挖掘的数据预处理。对于神经网络,采用规范化处理后的数据不仅有助于确保学习结果的正确性,还可以提高神经网络的学习效率。对于基于距离计算的挖掘,规范化方法可以避免因属性取值范围不同而影响挖掘结果的公正性。
1.Min-Max规范化
Min-Max规范化方法对原始数据进行一种线性变换,将数值映射到区间[0,1],其转换公式如下。
Min-Max规范化比较简单,但是也存在一些缺陷,即当有新的数据加入时,可能导致最大值和最小值发生变化,需要重新定义属性的最大值和最小值。
2.Z-Score规范化
Z-Score规范化的主要目的是将不同量级的数据统一转化为同一个量级,统一用计算出的Z-Score值衡量,以保证数据之间的可比较性。其转换公式如下。
Z-Score的优点是不需要知道数据集的最大值和最小值,对离群点规范化效果好。此外,Z-Score能够应用于数值型的数据,并且不受数据量级的影响,因为它本身的作用就是消除量级给分析带来的不便。
Z-Score规范化也有一些缺陷。首先,Z-Score对数据的分布有一定的要求,正态分布是最有利于Z-Score计算的;其次,Z-Score消除了数据具有的实际意义,其结果只能用于比较数据变换后的结果,不能真实表达原始数据的真实意义。
3.小数定标规范化
小数定标规范化通过移动属性值的小数位置来达到规范化的目的,将属性值映射到区间[-1,1],移动的小数位数取决于属性绝对值的最大值。其转换公式如下。
式中,k为能够使该属性绝对值的最大值的转换结果小于1的最小取值。
小数定标规范化方法直观简单,其缺点是并没有消除属性间的权重差异。