数据预处理常常涉及数据集成操作,即将不同来源、不同种类、不同格式的数据在物理上或逻辑上集中起来,形成一个一致的数据仓库,以便为后继的数据处理工作提供完整的数据基础。在数据集成时,不同数据源对现实世界的表达形式可能不同,有可能会造成模式不匹配。因此,要考虑实体识别问题和冗余属性识别问题,从而将源数据在最底层上加以转换、提炼和集成。
1.实体识别
实体识别是从不同数据源识别出现实世界的实体,检测这些实体的矛盾之处,使其变得统一。常见的实体之间的矛盾有如下几种。
(1)同名异义:属性名称相同而代表的数据意义不同。例如,数据源A和数据源B具有相同的属性ID,但是它们描述的分别是菜品编号和订单编号,即描述的是不同的实体。
(2)异名同义:属性名称不同而代表的数据意义相同。例如,数据源A中的sales_dt和数据源B中的sales_date虽然属性名称不同,但描述的都是销售日期。
(3)单位不统一:同一实体在不同数据源中使用的单位不一致。例如,重量属性在数据源A中采用公制单位,而在数据源B中采用英制单位;价格属性在不同国家和地区采用不同的货币单位。
2.冗余属性识别
冗余问题在数据集成中经常出现,主要表现为同一属性多次出现、同一属性命名不一致、一个属性可以从其他属性中推演出来。仔细整合不同源数据,能减少甚至避免数据冗余与不一致,从而提高数据挖掘的速度和质量。对于冗余属性,要先分析冗余的类型和原因,再根据属性在数据建模中的作用确定处理方式。例如,重复出现的属性可以直接删除;不同命名但语义一致的属性要先合并再删除冗余信息;有关联关系的属性可以利用相关分析发现数据的冗余情况。