数据清洗
一. 背景
现实生活中的数据极易受到噪声、缺失值和不一致数据的侵扰 , 数据集成可能也会产生数据不一致的情 况 , 数据清洗就是识别并且 ( 可能 ) 修复这些 “ 脏数据 ” 的过程
如果一个数据库数据规范工作做得好,会给数据清洗工作减少许多麻烦.对于数据清洗工作的研究基本上是基于相似重复记录的识别与剔除方法展开的,并且
以召回率和准确率作为算法的评价指标[33,34].现有的清洗技术大都是孤立使用的,不同的清洗算法作为黑盒子以顺序执行或以交错方式执行,而这种方法没有考虑不同清洗类型规则之间的交互简化了问题的复杂性,但这种简化可能会影响最终修复的质量,因此需要把数据清洗放在上下文中结合端到端质量执行机制进行整体清洗。随着大数据时代的到来,现在已经有不少有关大数据清洗系统的研究[36,37],不仅有对于数据一致性[38−40]以及实体匹配[41]的研究,也有基于 MapReduce 的数据清洗系统的优化[42]研究。
二. 数据清洗的基本方法
从微观层面来看,数据清洗的对象分为模式层数据清洗和实例层数据清洗[43].数据清洗识别并修复的“脏数据”主要有错误数据、不完整的数据以及相似重复的数据,根据“脏数据”分类,数据清洗也可以分为 3 类:属性错误清洗、不完整数据清洗以及相似重复记录的清洗,下面分别对每种情况进行具体分析
2.1 属性错误清洗
数据库中很多数据违反最初定义的完整性约束,存在大量不一致的、有冲突的数据和噪声数据,我们应该识别出这些错误数据,然后进行错误清洗.
2.1.1 属性错误检测
属性错误检测有基于定量的方法和基于定性的方法.
-
定量的误差检测一般在离群点检测的基础上采用统计方法来识别异常行为和误差,离群点检测是找出与其他观察结果偏离太多的点
-
定性的误差检测一般依赖于描述性方法指定一个合法的数据实例的模式或约束,因此确定