数据挖掘经常需要数据集成—合并来自多个数据存储的数据。数据还可能需要转换成适于挖掘的形式。本节介绍数据集成和数据变换。
Ø 数据分析任务多半涉及数据集成。数据集成合并多个数据源中的数据,存放在一个一致的数据存储(如数据仓库)中。这些数据源可能包括多个数据库、数据立方体或一般文件。
Ø 在数据集成时,有许多问题需要考虑。模式集成和对象匹配可能需要技巧。来自多个信息源的现实世界的等价实体如何才能匹配?这涉及实体识别问题。例如,数据分析者或计算机如何才能确信一个数据库中的customer_id和另一个数据库中的cust_number指的是相同的属性?每个属性的元数据包括名字、含义、数据类型和属性的允许取值范围,以及处理空白、零或null值的空值规则(见2.3节)。这样的元数据可以用来帮助避免模式集成的错误。元数据还可以用来帮助变换数据(例如,pay_type的数据编码在一个数据库中可以是“H”和“S”,而在另一个数据库中是1和2)。因此,这一步也与前面介绍的数据清理有关。
Ø 冗余是另一个重要问题。一个属性(如年收入)可能是冗余的,如果它能由另一个或另一组属性“导出”。属性或维命名的不一致也可能导致结果数据集中的冗余。
Ø 有些冗余可以被相关分析检测到。给定两个属性,这种分析可以根据可用的数据度量一个属性能在多大程度上蕴涵另一个。对于数值属性,通过计算属性A和B之间的相关系数(又称皮尔逊积矩系数(Pearson product coefficient),用发明者Karl Pearson的名字命名),我们可以估计这两个属性的相关度rA,B。即
Ø 注意,相关并不意味因果关系。也就是说,如果A和B是相关的,这并不意味A导致B或B导致A。例如,在分析人口统计数据库时,我们可能发现一个地区的医院数与汽车盗窃数是相关的。这并不意味一个导致另一个。实际上,二者必然地关联到第三个属性—人口。
Ø 统计检验假设A和B是独立的。检验基于显著水平,具有(r-1)×(c-1)自由度。如果可以拒绝该假设,则我们说A和B是统计相关的或关联的。
Ø 数据语义的异构和结构对数据集成提出了巨大挑战。由多个数据源小心地集成数据能够帮助降低和避免结果数据集中的冗余和不一致。这有助于提高其后挖掘过程的准确率和速度。
Ø 数据变换将数据转换或统一成适合于挖掘的形式。数据变换可能涉及如下内容:
n 光滑:去掉数据中的噪声。这种技术包括分箱、回归和聚类。
n 聚集:对数据进行汇总或聚集。例如,可以聚集日销售数据,计算月和年销售量。通常,这一步用来为多粒度数据分析构造数据立方体。
n 数据泛化:使用概念分层,用高层概念替换低层或“原始”数据。例如,分类的属性,如街道,可以泛化为较高层的概念,如城市或国家。类似地,数值属性如年龄,可以映射到较高层概念如青年、中年和老年。
n 规范化:将属性数据按比例缩放,使之落入一个小的特定区间,如-1.0~1.0或0.0~1.0。
n 属性构造(或特征构造):可以构造新的属性并添加到属性集中,以帮助挖掘过程。
Ø 通过将属性值按比例缩放,使之落入一个小的特定区间,如0.0~1.0,对属性规范化。对于涉及神经网络或距离度量的分类算法(如最近邻分类)和聚类,规范化特别有用。如果使用神经网络后向传播算法进行分类挖掘(见第6章),对于训练元组中量度每个属性的输入值规范化将有助于加快学习阶段的速度。对于基于距离的方法,规范化可以帮助防止具有较大初始值域的属性(如income)与具有较小初始值域的属性(如二元属性)相比权重过大。