2.4 数据集成和变换

发表于:2007-06-13来源:作者:点击数: 标签:
2.4 数据集成和变换 数据挖掘经常需要数据集成—合并来自多个数据存储的数据。数据还可能需要转换成适于挖掘的形式。本节介绍数据集成和数据变换。 2.4.1 数据集成 数据分析任务多半涉及数据集成。数据集成合并多个数据源中的数据,存放在一个一致的数据存储

2.4 数据集成和变换

数据挖掘经常需要数据集成—合并来自多个数据存储的数据。数据还可能需要转换成适于挖掘的形式。本节介绍数据集成和数据变换。

2.4.1 数据集成

数据分析任务多半涉及数据集成。数据集成合并多个数据源中的数据,存放在一个一致的数据存储(如数据仓库)中。这些数据源可能包括多个数据库、数据立方体或一般文件。在数据集成时,有许多问题需要考虑。模式集成和对象匹配可能需要技巧。来自多个信息源的现实世界的等价实体如何才能匹配?这涉及实体识别问题。例如,数据分析者或计算机如何才能确信一个数据库中的customer_id和另一个数据库中的cust_number指的是相同的属性?每个属性的元数据包括名字、含义、数据类型和属性的允许取值范围,以及处理空白、零或null值的空值规则(见2.3节)。这样的元数据可以用来帮助避免模式集成的错误。元数据还可以用来帮助变换数据(例如,pay_type的数据编码在一个数据库中可以是“H”和“S”,而在另一个数据库中是1和2)。因此,这一步也与前面介绍的数据清理有关。

冗余是另一个重要问题。一个属性(如年收入)可能是冗余的,如果它能由另一个或另一组属性“导出”。属性或维命名的不一致也可能导致结果数据集中的冗余。有些冗余可以被相关分析检测到。给定两个属性,这种分析可以根据可用的数据度量一个属性能在多大程度上蕴涵另一个。对于数值属性,通过计算属性A和B之间的相关系数又称皮尔逊积矩系数(Pearson product coefficient),用发明者Karl Pearson的名字命名),我们可以估计这两个属性的相关度rA,B。即67

 

其中N是元组个数,ai和bi分别是元组i中A和B的值,和分别是A和B的均值,σA和σB分别是A和B的标准差(在2.2.2节定义),而Σ(aibi)是AB叉积的和(即,对于每个元组,A的值乘BA 以该元组B的值)。注意,-1≤rA,B≤+ 1。如果rA,B大于0,则A和B是正相关的,意味A的值随B 的值增加而增加。该值越大,相关性越强(即每个属性蕴涵另一个的可能性越大)。因此,一个较高的rA,B值表明A(或B)可以作为冗余而被去掉。如果结果值等于0,则A和B是独立的, 不存在相关。如果结果值小于0,则A和B是负相关的,一个值随另一个的减少而增加。这意味每一个属性都阻止另一个出现。散布图也可以用来观察属性之间的相关(见2.2.3节)。

注意,相关并不意味因果关系。也就是说,如果A和B是相关的,这并不意味A导致B或B 导致A。例如,在分析人口统计数据库时,我们可能发现一个地区的医院数与汽车盗窃数是相关的。这并不意味一个导致另一个。实际上,二者必然地关联到第三个属性—人口。对于分类(离散)数据,两个属性A和B之间的相关联系可以通过χ 2(卡方)检验发现。

设A有c个不同值a1, a2, ., ac;B有r个不同值b1, b2, ., br。A和B描述的数据元组可以用一个相依表显示,其中A的c个值构成列,B的r个值构成行。令(Ai, Bj)表示属性A取值ai、属性B取值bj的事件,即(A = ai, B = bj )。每个可能的(Ai, Bj)联合事件都在表中有自己的单元(或位置)。χ2值(又称皮尔逊χ2统计量)可以用下式计算:

  

其中,oij是联合事件(Ai, Bj)的观测频度(即实际计数),而eij是(Ai, Bj)的期望频度,可以用下式计算

 



其中,N是数据元组的个数,count (A = ai)是A具有值ai的元组个数,而count (B = bj )是B具有值bj的元组个数。式(2-9)中的和在所有r×c个单元上计算。注意,对χ2值贡献最大的单元是其实际计数与期望计数很不相同的单元。

χ2统计检验假设A和B是独立的。检验基于显著水平,具有(r-1)×(c-1)自由度。我们将用下面的例子解释该统计量的使用。如果可以拒绝该假设,则我们说A和B是统计相关的或关联的。

让我们看一个具体的例子。例2-1 使用χ2的分类属性的相关分析。设调查了1 500个人,记录了每个人的性别。每个人对喜爱的阅读材料类型是否是小说进行投票。这样,我们有两个属性gender和preferred_ reading。每种可能的联合事件的观测频率(或计数)汇总在表2-2的相依表中,其中括号中的数是期望频率(根据两个属性的数据分布,用式(2-10)计算)。

表2-2 例2-1的数据的2×2相依表。gender和preferred_reading相关吗?

 

使用式(2-10),可以验证每个单元的期望频率。例如,单元(男,小说)的期望频率是

 

等。注意,在任意行,期望频率的和必须等于该行总观测频率,并且任意列的期望频率的和

 

对于2×2的表,自由度为(2-1) (2-1) = 1。对于自由度1,在0.001的置信水平,拒绝假设的χ2值是10.828(取自χ2分布的上百分点表,通常可以在任意统计学教科书中找到)。由于我们计算的值大于该值,因此可以拒绝gender和preferred_reading独立的假设,并断言对于给定的人群,这两个属性是(强)相关的。

除了检测属性间的冗余外,还应当在元组级检测重复(例如,对于给定的唯一数据实体,存在两个或多个相同的元组)。去规范化表(denormalized table)的使用(通常是通过避免连69 接改善性能)是数据冗余的另一个来源。不一致通常出现在各种不同的副本之间,由于不正确的数据输入,或者由于更新了数据的部分出现,但未更新所有的出现。例如,如果订单数据库包含订货人的姓名和地址属性,而不是这些信息在订货人数据库中的码,则偏差就可能出现,如同一订货人的名字可能以不同的地址出现在订单数据库中。

数据集成的第三个重要问题是数据值冲突的检测与处理。例如,对于现实世界的同一实体,来自不同数据源的属性值可能不同。这可能是因为表示、比例或编码不同。例如,重量属性可能在一个系统中以公制单位存放,而在另一个系统中以英制单位存放。对于连锁旅馆,不同城市的房价不仅可能涉及不同的货币,而且可能涉及不同的服务(如免费早餐)和税。

在一个系统中记录的属性的抽象层可能比另一个系统中“相同的”属性低。例如,total_sales 在一个数据库中可能涉及AllElectronics的一个分店,而另一个数据库中相同名字的属性可能表示一个给定地区的AllElectronics分店的总销售量。

在集成期间将一个数据库的属性与另一个匹配时,要特别关注数据的结构。这确保源系统中的属性函数依赖和参照约束与目标系统中的匹配。例如,在一个系统中,折扣可能用于订单;而在另一个系统中,它可能用于订单中的每个商品。如果在集成前未注意这一点,目标系统的商品可能不正确地打折。

数据语义的异构和结构对数据集成提出了巨大挑战。由多个数据源小心地集成数据能够帮助降低和避免结果数据集中的冗余和不一致。这有助于提高其后挖掘过程的准确率和速度。

2.4.2 数据变换

数据变换将数据转换或统一成适合于挖掘的形式。数据变换可能涉及如下内容:

. 光滑:去掉数据中的噪声。这种技术包括分箱、回归和聚类。

. 聚集: 对数据进行汇总或聚集。例如,可以聚集日销售数据,计算月和年销售量。通常,这一步用来为多粒度数据分析构造数据立方体。

. 数据泛化:使用概念分层,用高层概念替换低层或“原始”数据。例如,分类的属性,70 如街道,可以泛化为较高层的概念,如城市或国家。类似地,数值属性如年龄,可以映射到较高层概念如青年、中年和老年。

. 规范化:将属性数据按比例缩放,使之落入一个小的特定区间,如-1.0~1.0或0.0~1.0。

. 属性构造(或特征构造):可以构造新的属性并添加到属性集中,以帮助挖掘过程。光滑是一种数据清理形式,已在2.3.2节介绍。2.3.3节数据清理过程还讨论了ETL工具,用户说明变换以纠正数据中的不一致。聚集和泛化是一种数据归约形式,并分别在2.5节和2.6 节讨论。本节我们讨论规范化和属性构造。

通过将属性值按比例缩放,使之落入一个小的特定区间,如0.0~1.0,对属性规范化。对于涉及神经网络或距离度量的分类算法(如最近邻分类)和聚类,规范化特别有用。如果使用神经网络后向传播算法进行分类挖掘(见第6章),对于训练元组中量度每个属性的输入值规范化将有助于加快学习阶段的速度。对于基于距离的方法,规范化可以帮助防止具有较大初始值域的属性(如income)与具有较小初始值域的属性(如二元属性)相比权重过大。有许多数据规范化的方法,我们将学习三种:最小-最大规范化、z-score规范化和按小数定标规范化。

最小-最大规范化对原始数据进行线性变换。假定minA和maxA分别为属性A的最小值和最大值。最小-最大规范化通过计算

 

将A的值v映射到区间[new_minA, new_maxA]中的v'。

最小-最大规范化保持原始数据值之间的联系。如果今后的输入落在A的原始数据值域之

外,该方法将面临“越界”错误。

例2-2 最小-最大规范化。假定属性income的最小与最大值分别为12 000美元和98 000美

元。我们想把income映射到区间[0.0, 0.1]。根据最小最大规范化,income值73 600美元将变换

为:

在z-score规范化(或零均值规范化)中,属性A的值基于A的均值和标准差规范化。A的

值v规范化为v',由下式计算: 

其中,A 和σA分别为属性A的均值和标准差。当属性A的实际最大和最小值未知,或离群点左

右了最大-最小规范化时,该方法是有用的。

例2-3 z-score规范化。假定属性income的均值和标准差分别为54 000美元和16 000美元。

使用z-score规范化,值73 600美元转换为 

小数定标规范化通过移动属性A的小数点位置进行规范化。小数点的移动位数依赖于A的

最大绝对值。A的值v规范化为v',由下式计算:

是使得Max(| v' |) < 1的最小整数。

例2-4 小数定标。假定A的取值由-986~917。A的最大绝对值为986。使用小数定标规范化,用1 000(即j = 3)除每个值,这样,-986规范化为-0.986,而917被规范化为0.917。

注意,规范化将原来的数据改变,特别是上面的后两种方法。有必要保留规范化参数(如均值和标准差,如果使用z-score规范化),以便将来的数据可以用一致的方式规范化。

属性构造是由给定的属性构造和添加新的属性,帮助提高准确率和对高维数据结构的理解。例如,我们可能希望根据属性height和width添加属性area。通过组合属性,属性构造可在机器学习界,属性构造称作特征构造。

以发现关于数据属性间联系的丢失信息,这对知识发现是有用的。

【责任编辑:铭铭 TEL:(010)68476606-8008】


回书目   上一节   下一节

原文转自:http://www.ltesting.net

...