数据清洗范文

时间:2023-03-15 03:20:58

数据清洗

数据清洗范文第1篇

关键词:数据清洗;评价;过程

中图分类号:TP274

随着计算机技术的快速发展,网络技术及数据库技术的普及,我们能够很快拥有海量数据,但是,如何从这些海量数据中得到对我们决策有价值的信息,数据挖掘技术应运而生,为了保证数据挖掘能够达到预期的效果,在进行数据挖掘之前,必须对数据仓库/数据库中的数据源进行必要的清洗。

1 数据清洗的概念

数据清洗(Data Cleaning/Data Scrubbing),是在数据仓库/数据库中去除冗余、清除噪音、消除错误和不一致数据的过程。数据清洗并不是简单地选取优质数据,它同时还涉及到对原有数据的删除、添加、分解或重组等。

2 数据清洗的对象

数据清洗的任务是对不满足数据挖掘要求的数据进行清洗,将清洗的结果提交给数据挖掘的下一个环节。根据数据来源不同,数据源分为:

2.1 单数据源。单个数据源的数据质量,主要取决于它的模式设定,以及对数据源中数据的完整性约束的控制程度。因为数据模式和完整性约束需要控制数据的范围,如果一个数据源没有数据模式,那么对于输入或者存储的数据缺乏相应的限制,这样出现错误数据或者不一致数据的几率就会大大提高。

2.2 多数据源。由于各业务系统在设计、实现时功能的需求、设计的重点不同,多数据源中存在的主要问题是字段名称冲突、属性值和结构的冲突。例如:不同表中使用相同字段表示不同属性,不同名称的字段表示相同属性。

归纳单数据源和多数据源,不符合要求、错误的数据主要包括:空缺值类型的数据、噪声数据、不一致的数据、重复的数据四大类:

(1)空缺值数据,这一类数据主要是一些应该有的信息的缺失,如学生的生源地信息、学生的个别成绩值。(2)噪声数据,是在原始数据上偏离产生的数据值,跟原始数据具有相关性。由于噪音偏离的不确定性,导致噪音数据偏离实际数据的不确定性。(3)不一致数据,此类数据产生的主要原因是业务系统不健全、没有数据约束条件或者约束条件过于简单,在输入后没有进行逻辑判断直接写入造成的,比如成绩输入时输入850(期望数值85.0);日期格式不正确,日期越界等。(4)重复数据,是在数据表链接过程中,数据的合并过程中产生。

3 数据清洗的过程

3.1 数据清洗的原理

3.2 数据清洗的流程。一般情况下,数据清洗需要经过以下几个阶段:

(1)数据分析:通过比较详细的数据分析来检测数据源中的错误或不一致。对于数据(数据样本)的分析一般采用手工检查、借助分析程序检查或者两者相结合的方法,找到数据集和中存在的问题。(2)定义转换规则:根据数据分析得到的结果定义数据清洗的转换规则。根据数据源的个数,数据源中数据的质量,需要为模式相关的数据清洗和转换选定一种算法,从而提高数据自动转换的效率。(3)验证:数据清洗前应该对预先定义的数据清洗转换规则的正确性和清洗的效率应该进行验证和评估。一般是在数据源中选择数据样本进行清洗验证,当测试结果不满足数据清洗要求时需要对原有的数据清洗转换规则进行调整和改进。(4)数据清洗:在数据源上执行预先设计好并且己经得到验证的数据清洗转换规则,在源数据上对数据进行清洗前,需要对源数据进行备份,以防源数据的丢失或损坏。(5)干净数据的回流:当数据被清洗之后,干净的数据应该替换数据源中原有的数据,这样既可以提高原有数据库中数据的质量,还可以避免再次抽取数据时进行重复的清洗工作。

数据清洗是一个反复的过程,需要不断的发现清洗过程中的各类问题,解决问题。数据清洗的过程中一定要做好被清洗数据的备份工作,防止数据的丢失。

3.3 针对不同清洗对象的数据清洗。

4 数据清洗的评价

数据清洗的评价实质上是对清洗之后的数据质量进行评估。数据质量评价应该包括以下的评估指标:

精确性:客观实体的特征与其具体系统中的数据描述是否相一致。

完整性:实体的描述是否存在记录缺失或者字段缺失。

一致性:相同实体在不同的应用系统中是否一致,相同实体的同一属性值在不同的应用系统是否一致。

有效性:实体的描述或其属性的描述必须满足用户的需求或在给定的范围内。

唯一性:数据必须是唯一的,不能存在重复记录。

当然,除了以上的基本评估指标外,对于不同的领域,数据清洗的要求可能会有些不同。

5 数据清洗的发展和前景

尽管数据清洗越来越受到人们的重视,但是受到数据清洗成本的限制,数据清洗的研究和相关清洗工具的开发主要集中在国外,国内还没有引起足够的重视。特定领域的数据清理依然是科研院所、大中企业、高校研究和应用重点。

参考文献:

[1]JiaWei Han,Micheline Kamber.数据挖掘概念与技术[M].范明,孟小峰.北京:机械工业出版社,2010.

[2]张晓明,乔溪.数据清洗方法与构件的综合技术研究[J].石油化工高等学校学报,2005,1,8(2):67-71.

[3]杨宏娜.基于数据仓库的数据清洗技术研究[D].天津:河北工业大学,2006.

[4]邓莎莎,陈松乔.基于异构数据抽取清洗模型的元数据的研究[J].计算机工程与应用,2004.

数据清洗范文第2篇

关键词: 数据质量; 数据清洗; 属性错误; 重复记录; 质量评估

中图分类号:TP391  ;  ;  ;  ;  ;文献标志码:A  ;  ; 文章编号:1006-8228(2014)12-42-03

Research on Webdata cleaning and its system framework

Wang Chen

(School of Information Media and Art,Jiangsu Institute of Architectural Technology, Xuzhou, Jiangsu 221116, China)

Abstract: Data cleaning is an effective means to improve the quality of data. The quality problems and the errors appearing when extracting data from Web are analyzed. According to the error type, the attribute (including incomplete data and abnormal data) and records on repeat, similar repeat are described. The corresponding cleaning method is given. A framework of data cleaning is constructed, including data preprocessing, data cleaning engines and quality assessment. When being faced with different types of errors, it can complete the task of cleaning differently. The experiment results show that the framework has great generality and extensibility.

Key words: data quality; data cleaning; attribute error; duplicate records; quality assessment

0 引言

Web信息集成的目的是获取Web上的丰富数据资源,将其集成为用户或某个应用所需要的有效信息。但是从Web上抽取的大量数据,往往存在一定的数据质量问题,如拼写错误,空值,不合法数据,数据重复,以及不完整数据等等。因此必须进行数据清洗,消除数据的不一致与重复错误,提高数据的可用性,保证信息的质量,才能实现有效数据的高效查询,以及用于后续的数据挖掘与知识发现。

本文针对前期从Web中抽取到的大量数据,检测并消除其中存在的属性错误和重复与相似重复记录问题,提出一种通用的数据清洗系统框架,从而保证数据的可信度和可用性[1-2]。

1 属性错误

清洗属性错误主要用来解决不同数据源之间的数据不一致问题。属性错误主要包括两部分:不完整数据和异常数据。

1.1 不完整数据

不完整数据是指数据库中的某条记录的属性出现空值或缺失值的现象,如表1所示。

表1  ;不完整数据

这种现象主要是由数据源模式和抽取方式不同造成的,也是数据在抽取过程中出现质量问题的重要因素。如果某条记录中的关键字或者数值型属性不完整,则有可能导致错误数据模型的建立,还会引起决策支持系统的错误。因此,对于多个属性值为空或者其关键字属性为空的记录,应直接进行删除清洗。其余的不完整数据可以采用常量值替代、统计、分类和使用估算值的方法[3]进行清洗。

1.2 异常数据

异常数据是指数据库中的某条记录的属性出现不精确,错误的值,或者属性值违反业务规则,以及同一属性采用不同的表现形式等现象,如表2所示。

表2是从当当、卓越网站抽取到的相关图书数据,其中错误的数据为:“IT”(ID:2,属性:类别),《WTO服务贸易法专论》不属于IT类别;违反业务规则的数据为:“47”(ID:1,属性:售价),此值与定价和折扣两个字段的数值不符;数据发生的一致性错误为:ID为1的记录(属性:出版日期),出版日期为2012年9月1日,而ID为2的记录为2006-4-1,同一属性采用了不同的表示形式。

表2  ;异常数据

一般采用层次聚类的方法,对异常数据进行检测与清洗。首先将数据集的记录分成若干组,使同一组的数据具有较高相似度,不同组中的数据记录差别较大,散落在外,不能归并到任何一类中的数据称为“孤立点”;然后判断是否有“孤立点”存在,若存在,则判断该孤立点是否存在错误数据,若不存在,则根据规则库再次判断是否存在异常数据;最后,对获取的错误数据进行清洗处理,修正错误。

2 重复与相似重复记录

Web上的异构数据由于模式不同,数据的不完整,数据的缩写等问题,在进行Web抽取时,会获得大量重复数据,这些重复记录不但导致数据冗余,占用大量存储空间,而且还会给用户提供很多相似信息,造成检索结果的不准确性。数据清洗的核心工作就是要准确高效地检测并消除数据源中的重复数据,并进行归并。

在关系数据库中,属性值完全相同的记录,即为重复记录,它们表示同一对象;有些记录不完全相同,有些属性也不完全相同,但是它们表示同一对象,此类记录称为相似重复记录[4-5],例如表3。

表3  ;相似重复记录

表3中的三条记录来源于Web上不同数据源,仔细比较可知,这三条记录中的出版日期、所属类别、出版社这三个属性值存在不同。例如,针对出版日期属性,三条记录的描述格式存在差异,可以根据规则库中的相关函数将其转化成统一的格式,如“2012-9-1”;针对出版社属性,显然“清华”、“清华大学”均是“清华大学出版社”的缩写,可以根据数据字典中的定义将其统一为“清华大学出版社”;针对所属类别属性,“.Net”与“”均属于“IT>;程序设计”中的子类,也可进行统一。由此可知,表3中列出的三条记录为相似重复记录。

但是数据清洗过程中,相似重复记录的检测过程非常复杂,主要通过判断记录之间的相似性来达到获得重复记录目的。具体实施为:首先优选记录集中的特征属性,设定权重值,根据权重值对记录集进行聚类分组,使相似的记录尽量排在相邻的位置;再比较各组记录中对应字段的相似度,完成字段匹配;最后通过计算各字段的权重,利用加权的方式,得到记录的相似度,当超过某一阈值,则认为是相似的,从而完成记录匹配。

3 数据清洗系统框架

数据清洗系统框架主要包括:数据预处理、数据清洗引擎和质量评估三大部分,如图1所示。

图1  ;数据清洗系统框架模型

3.1 数据预处理

数据预处理主要包括数据分析与数据标准化两个模块。

⑴ 数据分析模块

本模块用来对从Web中抽取到的数据进行整体分析,获得可能会出现的数据质量问题和错误类型,以便后续选择适合的清洗规则和清洗算法。

⑵ 数据标准化

Web上的数据来源于不同的数据源,存储的形式不同,同一数据的表达方式不同,缩写的样式也存在不同,因此,在清洗之前,要对数据进行标准化,从而提高后续清洗操作执行的有效性。

本模块包括规范数据格式,统一数据表达方式和统一缩写三项工作,例如将日期类型的字段统一为ISO8601国际标准,并使用YYYY-MM-DD的格式[6]。

3.2 数据清洗引擎

数据清洗引擎主要包括数据检测、数据清洗两大模块。

⑴ 数据检测模块

数据检测模块用来检测属性错误(包括不完整数据和异常数据)和重复与相似重复记录。进行统计后,获得全面的脏数据信息,并归档。其中对于重复与相似重复记录可以采用特征属性的选择、属性权重的设定、聚类排序、字段匹配和记录匹配等检测操作。

⑵ 数据清洗模块

对检测出的脏数据进行清洗,对不完整数据采用删除、常量值替代、统计、分类、使用估算值填充的清洗方法;对异常数据可采用聚类、基于规则库的清洗等,从而完成属性错误问题的修正;对检测到的重复记录进行归并或清除工作。

这些工作均由算法库或规则库提供的预先定义好的清洗算法和清洗规则实行。当然在实际的操作工程中,可以随时调整或更新自定义的算法和规则。对于无法自动清洗的数据,可提交给用户,由其手动处理。通常先清洗异常错误,再清洗重复记录,最后清洗不完整数据。

3.3 质量评估

质量评估主要是使用包含在评估库中的评估方法和标准对数据清洗效果进行评估,并将结果反馈给用户,来检测是否达到了预定的清洗要求。通常用户需要反复的评估和清洗才能满足需求,最后获得干净数据。

4 实验结果与分析

实验中所用到的数据是从亚马逊、淘宝、china-pub等网站中抽取到的12700多条图书记录所形成的关系数据集。每条记录优选12个属性,形成如表4的字段信息。

表4  ;图书元数据信息

说明:字段名即关系表中的属性

经过数据清洗后,脏数据与干净数据的对比如表5。

实验表明,该清洗框架可以清洗属性值错误、数据不精确、数据描述不规范等属性错误和重复记录问题,通过调用数据清洗引擎,可以对不同类型的错误,采用不同的清洗过程进行处理。能够消除大部分的错误,从而提高数据质量。

5 结束语

数据清洗的目的就是利用现有的技术和手段,消除或减少数据中的错误与不一致问题,将其转化成为满足数据质量要求的数据。

本文分析了从Web上抽取到的数据存在的质量问题,给出包括不完整数据和异常数据在内的属性错误以及重复与相似重复记录的描述,并提出对应的清洗方法;设计了一个由数据预处理、数据清洗引擎和质量评估三部分共五个模块组成的数据清洗系统框架,可以针对不同类型的脏数据,完成不同的清洗任务。实验表明,该框架具有通用性和可扩展性。

参考文献:

[1] Ragm,E., Do,H,H. Data cleaning: problems and current apporaches.

IEEE Data Engineering Bulletin,2005.23(4):3-13

[2] Pair Wand, Rihard Y Wang. Anchoring Data Quality Dimensions

in Ontological Foundations[J]. COMMUNICATIONS OF THE ACM,2006.39(11):86-95

[3] Batista G E A P A, Monard M C. An analysis of four missing data

treatment methods for supervised learning .Applied Artificial Intelligence,2003.17(5-6):519-533

[4] 佘春红,许向阳.关系数据库中近似重复记录的识别[J].计算机应用

研究,2003.20(9):36-37

[5] 陈伟,丁秋林.数据清理中编辑距离的应用及Java编程实现[J].电脑

与信息技术,2003.17(6):33-35

[6] 张建中等.对基于SNM数据清洗算法的优化[J].中南大学学报(自然

数据清洗范文第3篇

关键词:数据清洗;全文索引;重复记录;清洗算法

中图分类号: TM399 文献标识码:A

1 引言(Introduction)

数据清洗(Data Clean)就是将错误的、不一致的、冗余的数据在装入数据仓库之前进行删除或修正,从而保证决策分析时数据的正确性.其主要工作就是从原始数据中检测错误和冲突的数据并消除的过程[1]。此项工作中检查并清除重复记录数据是数据清洗要解决的重要问题之一。重复记录就是指现实世界中同一个实体的不同数据记录,由于表述方式不同或者是因为拼写不同等使得DBMS不能识别它们为重复记录。如果这些记录不去掉,有可能导致数据模型建立的不准确,从而影响以后的数据决策分析。所以,在数据清洗中,检测并清除掉重复记录是非常重要的。

近邻排序算法(Sorted-Neighborhood Method, SNM)是数据清洗过程中的经典算法,而SNM算法却需要对数据集进行先期的排序[2],全文索引是一种特殊的基于标记的功能性索引,两者结合,可以在提高排序速度的同时有效的消除重复记录。

2 SNM算法(SNM algorithm )

SNM算法是当前比较流行的一类匹配与合并算法,而且该算法目前已被一些数据清洗工具所采用。目前采用比较普遍的方法是基于近邻排序算法[3],它的设计步骤可以分为下面三步:

(1)创建排序关键字,即从数据集中抽取记录属性中的一个属性值或者是子集序列的字串作为关键字,为数据记录集中每一条记录计算出关键字的键值。

(2)排序。根据该排序关键字对整个数据记录集进行排序。排序中应尽可能地使可能的重复记录排列到一个邻近的区域内,使得特定的记录可以将进行记录匹配的对象调整到在一定的范围之内。

(3)重复检测。排序后,就可以在排序后的数据记录集上滑动固定大小的窗口,滑动时,最先进入窗口内的记录将滑出窗口,最后一条记录的下一条记录将移入窗口,数据记录集中新进入的记录与窗口内的记录进行比较。如果窗口的大小为W条记录,则每条新进入到窗口内的记录就要与先前进入窗口的W-1条记录进行逐一比较,以此来检测重复记录,如不重复,则把此信进入的第W条记录作为下一轮比较对象,以此类推,直到完成所有记录集中记录得比较,如图1所示。

SNM算法采用的滑动窗口比较检测重复记录的方法,每次只比较窗口中的W条记录,采用滑动窗口提高了比较速度,从而有效地提高了匹配效率。但SNM算法也存在一些不足:(1)对排序关键字的依赖性较大。SNM算法检测重复记录的精度某种程度上受到创建的排序关键字的限制,关键字的好坏直接影响了匹配的效率和精度。而且关键字的选取还依赖于应用领域。当选取关键字不当时,就有可能使得本来是重复记录的两条记录在排序后物理位置相距较远,可能永远不会同时位于同一个滑动窗口内,也就不能被识别出是重复记录,即在重复检测时会漏掉很多重复记录。(2)滑动窗口的大小W的选取也不好选择。W较大时比较次数会增多,而有些比较是没有必要的;当W较小时可能又会遗漏匹配;如果记录中各种重复记录聚类差别较大时,W的选取无论是大还是小又都不恰当。

3 全文索引(Full-text index)

所谓全文索引,就是面向全文并提供全文信息的检索技术,它不需要对信息进行标引就可以完成检索,它采取将原文中有意义的字或者词作为检索内容,由其指向原文有关页面或进行链接[4]。基于这种词索引的全文检索主要有以下几步:首先进行汉语自动分词,其次对文档中有意义的词进行倒排索引,在检索时将通过用户输入的检索条件按照匹配机制与词索引库中的信息进行匹配,最后将检索结果返回给用户。

全文索引与普通索引不同之处在于普通索引采取B-tree的结构进行维护,而全文索引是基于标记的功能性索引,由Microsoft SQL Server全文引擎服务创建并维护。全文索引可以快速、灵活地为存储在SQL Server数据库中的文本数据机建立面向关键字查询的索引,它与like语句不同之处是like语句的搜索主要适合字符模式的查询,而全文索引是针对语言的搜索,它根据语言的规则对词和短语进行搜索。所以,在对大量的数据进行查询时,全文索引可以提高查询的性能,对于上百万条记录的数据进行like查询需要几分钟才能得到结果,而全文索引只需几秒钟甚至更少的时间就可以得到结果。

4 重复记录清洗算法的研究(Research of duplicate

records cleaning algorithm)

根据前面SNM算法的分析,知道它存在的缺点,就此引入全文索引技术,将全文索引技术与传统的SNM算法相结合,形成一种新的重复记录清洗算法。它的设计思想就是在排序过程中,结合汉语检索方法引入全文索引技术,以此来弥补SNM算法的不足,从而提高排序速度,同时全文索引技术还可以有效的使得重复记录尽可能出现在同一个滑动窗口中,减少重复记录检测的失误,提高检测效率。在进行两条记录的相似度匹配时,还根据元组各不同字段的重视程度的不同设置不同的权值,再与比较相似度阈值进行比较,决定两条记录是否是重复记录。设计思想的具体工作流程请见如图2所示。

基于全文索引的SNM算法中主要功能的伪代码如下:

//检索之前对数据集进行标准化处理的伪代码:

UPDATE [dbo].[TABLENAME]

SET [COLUMN]=STANDARD VALUE

WHERE CONTAINS([COLUMN],UNSTANDARDIZED VALUE)

//标准化处理后再对数据集进行算法处理:

Set w(column1)=column1 weight value;

w(column2)=column2 weight value;……//为每个字段设定权值

Set w=a;threshold=b;

//设定滑动窗口大小为a,

//阈值为bor(int t=w-1;t

//数组中第一个记录为array[0]

{Int newtheshold=

(array[t].column1)compare(array[t-w+1].column1)*w(column1)+

(array[t].column2)compare(array[t-w+1].column2)*w(column2)+……

//compare是两个字符串比较函数,相等值为1,否则为0;

//通过权值分配比较两条记录的相似度

If(newtheshold> theshold)

Delete array[t];

//如果记录相似度大于阈值则删除后面的记录

}

对记录比较时对记录集中的滑动窗口的设置过程中,采用算法如下:

SELECT num=COUNT(*)

FROM [dbo].[TABLENAME]

WHERE CONTAINS([COLUMN],array[0].column)

Set w=m;

滑动窗口中记录比较代码

If((array[t].column)compare(array[t-w+1].column)=0)

SELECT n=COUNT(*)

FROM [dbo].[TABLENAME]

WHERE CONTAINS([COLUMN],array[t].column)

Set w=(int)n/num*m;

在使用SNM算法对记录进行比较时,两条记录的匹配流程是对不同的字段根据在元组中的重要程度赋予不同的权值,在设定好阈值的基础上,计算每条记录的权值总和,如果总值大于设定的阈值,则作为重复记录处理,否则视为两条记录。具体工作匹配流程如图3所示。

5 结论(Conclusion)

本论文通过在SNM算法中引入全文索引方法,较好的降低了索引处理成本并加快了处理速度,不仅较好的解决了记录排序效率低的问题,同时通过滑动窗口的随时改变,对字段设定不同的权值,将记录的权值的总和与设定的阈值进行相似度检测,在不影响查找重复记录效率的情况下减少了不必要的比较次数,从而更好的提高了算法的效率。

参考文献(References)

[1] 杨辅祥,刘云超,段智华.数据清理综述[J].计算机应用研

究,2004(4):3-5.

[2] 郭文龙.一种改进的相似重复记录检测算法[J].计算机应用与

软件,2014(1):293-295.

[3] 张建中,等.对基于SNM数据清洗算法的优化[J].中南大学学

报,2010(6):2240-2245.

[4] 徐小刚,王俊杰,于玉.全文索引的研究[J].计算机工程,2002

(2):101-103.

作者简介:

谢文阁(1966-),男,本科,教授.研究领域:数据仓库,软件

开发.

佟玉军(1970-),男,本科,副教授.研究领域:算法,数据

挖掘.

贾 丹(1972-),女,硕士,副教授.研究领域:算法,软件

开发.

梅红岩(1978-),女,博士,副教授.研究领域:人工智能,软

数据清洗范文第4篇

关键词:数据清洗 脏数据 异常数据检测 重复记录检测

中图分类号: G302;TP391 文献标识码: A 文章编号: 1003-6938(2013)05-0022-07

1 引言

随着计算机信息系统在各行各业的普及,产生了大量的数据,怎样对这些数据进行有效的组织是当前研究的热点之一。数据仓库作为一种有效的数据组织方式,得到了广泛的应用。数据仓库是面向主题的、集成的、随时间变化的、非易失的数据集合,用于支持管理层的决策过程[1]。数据仓库不仅是一种语义一致的数据存储,充当决策支持数据模型的物理实现,并存放企业战略决策所需要的信息,也是一种体系结构,将异构数据源中的数据集成在一起而构建,为企业的决策者提供知识支持。

利用数据仓库对大量数据进行有效的组织,避免出现”garbage in,garbage out”的情况[2],则必须保证数据仓库中的数据的准确性、一致性、完整性、时效性、可靠性和可解释性[3],即数据是高质量的数据,才能使OLAP分析或挖掘的结果具有较高的精确性和可信度。但由于种种原因,现实中的数据都是脏数据,要提高数据的质量,不仅要在事前对数据进行严格定义与约束,而且还要在事后使用特定算法对数据进行检测与处理[4]。

国外对数据清洗的研究起源于上世纪50年代的美国,是从纠正全美社会保险号开始[5],主要是处理西文数据,其研究主要集中以下几个方面:(1)异常数据的检测与处理;(2)数据重复的检测与处理;(3)面向特定领域的数据清洗;(4)与领域无关的数据清洗;(5)数据的集成。数据清洗也必须考虑数据集成问题,即将数据源中的结构和数据映射到目标结构与域中,而数据的多义性和结构对数据集成提出了巨大的挑战,数据集成包括:实体识别、冗余与相关分析、元组重组和数据值冲突的检测与处理[3]。国外关于中文的数据清洗的研究较少,且由于语种的差异性,能够适应英文数据清洗的方法不一定能适合中文数据清洗。比较成熟的方案有IBM公司提出的基于InfoSphere Quality Stage的中文数据清洗[6-7]。

国内对于数据清洗的研究较晚,并且针对中文的数据清洗研究的成果也不多。当前国内对数据清洗的研究主要集中在改进西文算法应用到中文领域,取得了一些成果。复旦大学的周傲英教授团队[8]、沈阳航空工业学院的夏秀峰教授[9]、李蜀瑜博士[10]、东南大学的董逸生教授的团队[11]均对数据重复问题进行了研究;北京大学的杨冬青教授的团队[12]、武汉理工大学的袁景凌副教授[13]、东南大学的董逸生教授团队[14]、复旦大学的周傲英教授团队[15]等对数据的集成问题进行了研究;中科院的刘清[16]、山东理工大学的王晓原教授[17]、西安理工大学张璟教授[18]、上海宝钢公司的王永红[19]、东北大学的于戈教授团队[20-22]、西北大学的李战怀教授团队[23]、辽宁大学的宋宝燕教授团队[24]、贵州大学的李少波教授团队[25]、沈阳航空航天大学的夏秀峰教授团队[26]均对面向特定领域的数据清洗进行了研究。

本文将对脏数据的类型与出现原因进行总结,对数据清洗的国内外研究现状进行分析,提出数据清洗的定义与对象,重点阐述属性级异常数据的检测与处理的算法、记录级重复数据的检测与处理的算法,并对算法的优缺点及适用范围做简要说明,并指出当前数据清洗技术的研究不足以及未来研究的方向。

2 脏数据的类型与出现原因

脏数据的类型有许多种类,且每种脏数据出现的原因也不一样,本文从单数据源的脏数据类型与出现原因和多数据源的脏数据类型与出现原因进行描述,根据复旦大学周傲英教授对脏数据的分类,将脏数据分为单数据源模式层问题、单数据源实例层问题、多数据源模式层问题和多数据源实例层问题四种类型[27],表1列出了“脏数据”类型、实例与出现原因。

如表1所示,“脏数据”的类型有很多种,在实例层来说,单数据源的“脏数据”就是不完整数据、不正确数据、不可理解数据、过时数据、数据重复等,单数据源的数据清洗主要是指在属性上对数据进行检测与处理;多数据源的“脏数据”更为复杂,主要指大量的重复数据、数据冲突,多数据源的数据清洗主要指是对重复数据的检测与处理、解决数据冗余和数据冲突问题。

3 数据清洗的定义与对象

3.1数据清洗的定义

数据清洗不仅应用在数据仓库中,也应用在数据挖掘和全面数据质量管理领域,不同的领域中数据清洗的定义也不相同,数据清洗没有统一的定义。本文借用南京理工大学的王曰芬教授[28]对数据清洗的定义:

数据清洗为清除错误和不一致数据的过程,并需要解决孤立点和元组重复问题。数据清洗并不是简单地对脏数据进行检测和修正,还涉及在属性级上维度的整合与分解,及数据的整合与分解。

3.2 数据清洗的对象

借鉴复旦大学周傲英教授和南京理工大学王曰芬教授对数据清洗对象的分类,按照数据清洗对象的来源领域与产生原因对数据清洗对象进行分类,对象的来源领域因素属于宏观层面划分,而产生原因属于微观层面划分。

(1)来源领域:很多领域涉及到数据清洗,包括数字化文献服务、图书借阅、搜索引擎、金融领域、政府机构、商品零售、射频识别领域等,数据清洗的目的是为信息系统提供准确而有效的数据。现在研究比较多的领域有:

①射频识别(Radio Frequency Identification,RFID)领域的数据清洗研究:由于RFID硬件设备固有的限制[29-30]和环境噪声的影响,RFID阅读器存在漏读、多读和脏读等现象,降低了RFID数据的可用性[31],如何识别部分信息丢失的数据、重复阅读的数据、未正确阅读的数据以及模糊的数据是研究人员关注的,对于这些脏数据需要经过数据清洗的方法进行检测及纠正是必要的。国内外已经有很多学者对射频识别领域的数据清洗问题展开了研究,并已经取得了一些成果[32-33]。

②Web领域的数据清洗研究:搜索引擎为人们在Web上查找信息提供了方便,返回网页与用户查询主题的贴切程度并不让人满意,这是因为对网页索引的效果比较差,需要在索引时对网页的内容进行清洗[34]。按照网络数据清理的粒度不同,现有的解决思路大致分为两类,Web页面级别的数据清理和基于页面内部元素级别的数据清理,前者以Google公司提出的PageRank算法[35]和IBM公司Clever系统的基石HITS算法[36]为代表;而后面一个思路则集中体现在作为MSN搜索引擎核心技术之一的VIPS算法[37]上。

③面向特定领域的数据清洗:主要是金融领域、保险领域、零售领域、政府机构、交通领域等,这些领域的脏数据包括错误数据、不一致数据、重复数据以及业务逻辑错误的数据。

④数字化文献服务领域,在进行数字化文献资源加工时,OCR软件有时会造成字符识别错误,或由于标引人员的疏忽而导致标引词的错误等,解决这些问题是数据清洗需要完成的任务。

(2)产生原因:在微观方面,数据清洗对象分为模式层和实例层数据清洗。数据清洗的任务是过滤或者修改那些不符合要求的数据,主要包括不完整数据、不正确数据、不可理解数据、不一致数据和重复数据等几类。

4 数据清洗算法

对于数据清洗算法,一些研究机构提出了数据预处理、排序邻居方法、多次遍历数据清洗方法、采用领域知识进行清洗、采用数据库管理系统的集成数据清洗等算法。基于中文数据和西文数据的差异性,中文数据清洗除了移植西文数据的清洗方法外,也有自己特有的清洗方法。

4.1 属性级异常数据的清洗

无论西文数据还是中文数据的属性级异常情况都有空白值、噪音数据、不一致数据等,异常数据的检测方法与处理方法如图1所示。

如图1所示,人工检测的方法,需要花费大量的人力、物力和时间,而且这个过程本身很容易出错,所以需要利用更高效的方法自动检测数据集中的属性错误,这些方法包括统计学方法、模式识别方法[38]、聚类方法,、基于邻近性的方法、基于分类的方法、基于关联规则的方法等。这些方法的主要思想、优点、缺点的比较如表2所示。

如表2所示,西文数据的自动检测属性级错误数据的方法主要有6种方法,我们可以把这些方法分成监督方法、半监督方法和无监督方法。研究比较多的是统计学方法、聚类方法、基于邻近性(距离)的方法和基于关联规则的方法,统计学方法包括参数方法(基于正态分布的一元离群点检测、多元离群点检测和使用混合参数分布)和非参数方法(盒图、直方图),基于邻近性(距离)的方法包括基于距离的异常值检测与嵌套循环方法、基于网格的方法和基于密度的方法。

我们处理的属性级错误主要是实例层的错误数据,包括空缺值的处理方法、噪音值的处理方法和不一致值的处理方法。

⑴空缺值的清洗方法主要有:忽略元组;人工填写空缺值;使用一个全局变量填充空缺值;使用属性的中心度量(均值、中位数等);使用与给定数据集属同一类的所有样本的属性均值、中位数、最大值、最小值、从数等;使用最可能的值;或更为复杂的概率统计函数值填充空缺值。

(2)噪音值的清洗方法主要有:分箱(Binning),通过考察属性值的周围值来平滑属性的值。属性值被分布到一些等深或等宽的“箱”中,用箱中属性值的平均值、中值、从数、边缘值等来替换“箱”中的属性值;回归(regression),用一个函数拟合数据来光滑数据;计算机和人工检查相结合,计算机检测可疑数据,然后对它们进行人工判断;使用简单规则库检测和修正错误;使用不同属性间的约束检测和修正错误;使用外部数据源检测和修正错误。

(3)不一致数据的清洗方法。对于有些事务,所记录的数据可能存在不一致。有些数据不一致,可以使用其他材料人工加以更正。例如,数据输入时的错误可以使用纸上的记录加以更正。知识工程工具也可以用来检测违反限制的数据。知道属性间的函数依赖,可以查找违反函数依赖的值[39]。此外,数据集成也可能产生数据不一致。表3给出属性级错误数据清洗的方法比较情况。

上述检测与处理的算法对中文属性级异常数据也适用,但需要对算法进行改进,因为中文是双字节编码,并且没有明显分隔符,存在大量同音字,对属性级上数据清洗带来一定的困难,也是研究中文数据清洗的重点与难点之一。中文属性级异常数据清洗研究主要集中在数据重复检测方面[6]。中文数据重复检测的方法有:(1)字符串匹配方法,又有5种不同的方法:单个字符的匹配方法、汉语自动分词方法、特征词匹配方法、词法分析得到的字符串匹配方法和中文缩写的回归字段匹配方法;(2)拼音匹配方法,中文经常会出现同音字的现象,为了增大匹配的几率,有些时候需要用匹配单位的字符拼音进行匹配,目的是解决汉语中一音多字的问题,拼音匹配方法可作为字符串匹配方法的一种辅助方法,提高匹配精确度;(3)字段的相似度匹配方法,通过相似度计算公式进行相似度计算,从而判断相似性,主要有编辑距离方法。

4.2 记录级异常数据的清洗

记录级异常数据主要指记录数据的重复,对重复记录数据的处理包括重复记录检测和重复记录数据的处理。对重复数据的检测的算法主要有基本的字段匹配算法[38],递归的字段匹配算法[25],Smith-Waterman算法[25],编辑距离[40-41]、Cosine相似度函数[41-42],表4给出了各种算法的比较[28]。

对记录级的数据处理的思想是“排序和合并”,先将数据库中的记录排序,然后通过比较邻近记录是否相似来检测记录是否重复。消除重复记录的算法主要有:优先队列算法[41][43]、近邻排序算法(Sorted-Neighborhood Method,SNM)[41][44]、多趟近邻排序(Multi-Pass Sorted- Neighbor2hood,MPN)[41][44]。表5给出了重复记录清洗算法的比较情况[28]。

上述记录级数据重复的检测与处理方法不仅适用于西文数据,也适用于中文数据,而且中文数据也有自己的独特的方法,是上述各种算法的变异,包括:①有序邻接点算法,其思想是:首先对整个数据集按照用户定义的键进行排序,然后将可能匹配的记录相邻排列在一起,从而检测出疑似重复记录[45],此算法的缺陷主要表现在两个方面,第一,对于关键字的依赖过大,关键字选取的好坏直接影响到匹配的效率和精度;第二,对于固定窗口的选取不当,可能会造成匹配精度的下降和匹配时间的增加;②Fuzzy Match/merge算法,其主要思想是对各个属性数据进行规范化处理之后,对于所有记录两两进行比较,比较时采取一些模糊的策略,最后将比较结果合并,此算法的缺陷主要是所需的时间较长,以及对于计算机空间的要求较高。

5 数据清洗研究的不足与展望

国外对西文数据清洗的研究比较成熟,对中文数据的研究比较少;国内对中文数据清洗的研究主要集中在对算法的改进,原创性算法还比较少,取得的成果也不多。因此,对于中文数据清洗的研究还存在很大的发展空间,具有很好的应用前景和理论价值。

无论是对西文数据清洗的研究还是对中文数据清洗的研究都存在着很多不足之处,主要表现在以下几个方面:(1)数据清理研究主要集中在西文数据上,中文数据清理与西文数据清理有较大的不同,中文数据清理还没有引起重视;(2)现今对于中文数据清洗的研究主要针对的是实例层的数据,比如在数值型、字符串型字段中的研究,而对于模式层的数据清洗研究比较少;(3)对重复数据的识别效率与识别精度问题的解决并不令人满意,特别是在记录数据非常多时,耗时太多;(4)以前数据清理主要集中在结构化的数据上,而现在清洗的对象主要是非结构化数据或半结构化的数据;(5)数据清洗工具或系统都提供了描述性语言,但基本上都是经过某种已有语言根据自己需要经过扩展实现的,不能很好地满足数据清理中大致匹配的需要,不具有互操作性,需要加强数据清洗工具之间的互操作性研究;(6)现今的数据清洗大多数是面向特定领域。

依据现今数据清洗的研究的不足,数据清洗未来主要的研究方向有:(1)中文数据清理工具的研究和开发;(2)数据挖掘方法在数据清理领域应用做深入研究;(3)重复记录识别的效率需要进一步提高;(4)非结构化数据的清洗;(5)数据清洗工具之间的互操作性;(6)数据清理方案的通用性。后续将对中文数据清洗技术的改进和优化做进一步的研究。

参考文献:

[1]William H.Inmon.王志海,等译.数据仓库(第4版)[M].北京:机械工业出版社,2006:20.

[2]Lee M,Lu H,Ling T W,etal. Cleansing data for mining and warehousing[A].Proceedings of the 10th International Conference on Database and Expert Systems Applications[C].1999:751-760.

[3]Jiawei Han,Micheline Kamber, Jian Pei.DATA MINING Concepts and Techniques[M].北京:机械工业出版社出版社(第三版),2012:84,92-99,543-572.

[4]Dasu T , Johnson T. Exploratory data mining and data cleaning [M] . John wiley , 2003.

[5]Galhardas H, Florescu D. An Extensible Framework forData Cleaning[A].Proceedings of the 16 th IEEE International Conference on Data Engineering. San Diego[C]. California, 2000: 312-312.

[6]叶鸥,张 ,李军怀.中文数据清洗研究综述[J].计算机工程与应用,2012,48(12):121-129.

[7]俞荣华,田增平,周傲英.一种检测多语言文本相似重复记录的综合方法[J].计算机科学,2002,29(1):118-121.

[8]邱越峰,田增平,李文等.一种高效的检测相似重复记录的方法[J].计算机学报,2001,24(1):69-77.

[9]刘哲,夏秀峰,宋晓燕等.一种中文地址类相似重复信息的检测方法[J].小型微型计算机系统,2008,29(4):726-729.

[10]石彦华,李蜀瑜.聚类反馈学习的数据清洗研究[J].计算机工程与应用,2011,47(30):127-131.

[11]韩京宇,徐立臻,董逸生.一种大数据量的相似记录检测方法[J].计算机研究与发展,2005, 42(12): 2206-2212.

[12]方幼林,杨冬青,唐世渭等.数据转换过程的串行化方法[J].计算机工程与应用,2003,39(17):184-187.

[13]袁景凌,徐丽丽,苗连超.基于XML的虚拟法异构数据集成方法研究[J].计算机应用研究,2009, 26(1):172-174.

[14]韩京宇,胡孔法,徐立臻等.一种在线数据清洗方法[J].应用科学学报,2005,(3):292-296.

[15]郭志懋,俞荣华,田增平等.一个可扩展的数据清洗系统[J].计算机工程,2003,(3):95-96,183.

[16]张晋辉,刘清.基于推理机的 SCI 地址字段数据清洗方法设计[J].情报科学,2010, 28(5):741-746.

[17]王晓原,张敬磊,吴芳.交通流数据清洗规则研究[J].计算机工程,2011,37(20):191-193.

[18]刘嘉,张 ,李军怀.一种基于Token 匹配的中文数据清洗方法[J].计算机应用与软件,2009,26(11):43-45,53.

[19]王永红.定量专利分析的样本选取与数据清洗[J].情报理论与实践,2007,30(1):93-96.

[20]马茜,谷峪,张天成等.一种基于多阅读器数据冗余的高效RFID 数据清洗策略[J].小型微型计算机系统,2012,33(10): 2158-2163.

[21]谷峪,于戈,胡小龙等. 基于监控对象动态聚簇的高效RFID 数据清洗模型[J].软件学报, 2010,21(4): 632-643.

[22]谷峪,李晓静,吕雁飞等.基于RFID 应用的综合性数据清洗策略[J]. 东北大学学报(自然科学版),2009,30(1):34-37.

[23]潘巍,李战怀,聂艳明等.一种有效的多数据源RFID冗余数据清洗技术[J]. 西北工业大学学报, 2011,29 (3):435-442.

[24]王妍,宋宝燕,付菡等.引入卡尔曼滤波的RFID数据清洗方法[J].小型微型计算机系统,2011,32(9):1794-1799.

[25]潘伟杰,李少波,许吉斌. 自适应时间阈值的RFID数据清洗算法[J].制造自动化,2012,34(7上):24-27,36.

[26]夏秀峰,玄丽娟,李晓明.分流机制下的RFID 不确定数据清洗策略[J].计算机科学, 2011,38 (10A):22-25.

[27]郭志懋, 周傲英. 数据质量和数据清洗研究综述[J].软件学报,2002,13(11):2076-2082.

[28]王曰芬,章成志,张蓓蓓等. 数据清洗研究综述[J].现代图书情报技术,2007,(12):50-56.

[29]Sullivan L. RFID implementation challenges persist,all this time later[J].Information Week,2005,1059:34-40.

[30]Jeffery S R,Garofalakis M N,Franklin M J. Adaptive cleaning for RFID data streams[A]. Proceedings of Vary Large Data Bases Seoul,Korea,2006: 163-174.

[31]Derakhshan R,Orlowska M E,Li X. RFID data management: challenges and opportunities[A].Proceedings of 2007 IEEE International Conference on RFID[C].Gaylord Texan,USA,2007: 175-182.

[32]Song Baoyan,Qin Pengfei,Wang Hao,et al.bSpace:a data cleaning approach for RFID data streams based on virtual spatial granularity[A]. 2009 9th International Conference on Hybrid Intelligent System.IEEE Computer Society[C].2009,252-256.

[33]Ziekow H,Ivantysynova L.A probabilistic approach for cleaning RFID data[A].ICDE Workshop[C].2008.

[34]刘奕群,张群,马少平.面向信息检索需要的网络数据清理研究[J].中文信息学报,2006,20(3):70-77.

[35]Sergey Brin and Lawrence Page, The anatomy of a large-scale hypertextual Web search engine[J].Computer Networks and ISDN Systems,1998,30(7) 107-117.

[36]JonM. Kleinberg, Authoritative sources in a hyperlinked environment[J]. Journal of the ACM,1999,46(5):604- 632.

[37]Deng Cai, Shipeng Yu, Ji RongWen and Wei YingMa.VIPS: a Vision based Page Segmentation Algorithm[R].Microsoft Technical Report (MSR2TR22003-79),2003.

[38]周奕辛. 数据清洗算法的研究与应用[D].青岛:青岛大学, 2005.

[39]唐懿芳,钟达夫,严小卫.基于聚类模式的数据清洗技术[J].计算机应用,2004, 24 (5):116-19.

[40]Masek W, Paterson M A. Faster Algorithm Computing String Edit Distance[J]. Journal of Computer System

Science, 1980,(20) : 18-31.

[41]周芝芬.基于数据仓库的数据清洗方法研究[D].上海:东华大学,2004.

[42]Salon G, McgillM J. Introduction to Modern Information Retrieval[M]. NewYork:McGraw-Hill Book Co,1983.

[43]Monge A, Elkan C. The Field Matching Problem: Algorithms andApp lications[A].Proceedings of the 2nd International Conference of Knowledge Discovery and Data Mining[C]. Portland, Oregon, 1996.

[44]Hernandez M, Stolfo S. Real World Data is Dirty: Data Cleansing and theMerge / Purge Problem[J].DataMining and Knowledge Discovery,1998,2(1):9-37.

[45]Hon D B,Dewi V J.Duplicate record elimination in large data files[J].ACM Transactions on Database System,1995.

数据清洗范文第5篇

关键词:时空冗余性;概率算法;贝叶斯推理;数据清洗

中图分类号:TP301 文献标识码:A 文章编号:1009-3044(2016)29-0232-03

1 引言

RFID是一种允许物体在一定范围内,被自动识别而无需直接观测到的电子标签技术,采用电磁和响应交换[1,2]。目前大量的零售商如沃尔玛、中国EMS、思科在仓库和分发中心的存货系统中安装RFID技术。然而RFID阅读器收集到的数据是不可靠的,中间件系统需要纠正阅读数据并提供清洗过的数据。目前大部分解决方案是清洗一组阅读器采集的数据[3]。然而,已有的方法主要存在三个方面的限制:

1)未利用RFID数据的时空冗余性提高数据的准确性。由大量拥有重复检测区域并且静止的阅读器可产生数据的空间冗余,移动的阅读器在一段时间内持续的数据采集可形成数据的时间冗余。

2)没有有效地利用标签物体和RFID阅读器的先验知识提高数据的准确性。

3)未有效的利用特定应用中的限制(比如一个房间或书架的容量)清洗数据。

本文提出一种考虑到这三种限制的新方法,充分利用数据的冗余性、先验知识和应用限制来提高准确性和数据清洗的有效性。

2 贝叶斯推理框架及n元检测模型

2.1贝叶斯推理框架

首先描述如何基于贝叶斯推理的方法来处理冗余数据和先验知识。贝叶斯推理是根据观察(y)得出假设(x)可能性的统计学方法。贝叶斯推理表明后验知识跟先验知识息息相关,可表示为[pxy∝pyxpx]。

假设在检测环境中有m个区域和n个物体,每个区域中间位置部署一个阅读器。oi表示拥有ID为i的物体。对于每个oi,它的位置表示为一个随机变量hi。因此,n个物体在m个区域可能的分布表示为一个向量[H=h1,h2,…,hn]。hi表示物体oi所在的位置。例如h1=2表示物体o1当前在区域2内。对于区域j中的阅读器,从物体oi标签接受到的未处理的数据(0或1)定义为zij。从m个阅读器每次完全的扫描得到的未处理数据矩阵可以表示为[n×m]阶矩阵[?]=|zij|。那么贝叶斯定理可以如公式(1)所示,其中[postH?]表示根据给定未处理数据[?]得到后验位置矢量[H],假设满足以下约束:如果[H]无效,[postH?]=0;如果[H]有效,[postH?]>0;如果[H1]比[H2]可能性大,则[postH1?]>[postH2?]。如果在未处理数据矩阵中zij=1而实际中物体oi没在区域j中,那么zij就是误报。

为了计算[postH?],假定每个阅读器检测不同的标签是独立的(阅读器成功检测到一个标签不影响它成功检测到另一个标签),可以得到公式(2)。假定不同的hi(物置)之间是独立的,并且假定对同一物体每个阅读器的检测是独立的,每个物体的先验分布不依赖于其他物体。由此可得到公式(3)。采用格式化常量[α]重写公式(3)可获得公式(4),对已给定的脏数据[?]和假设[H](每个物体的位置),可以基于公式(4)得到假设的可能性。

我们的目标是创造一个大的有效假设样本集,而有效假设采样的一个先决条件是可以精确计算每个假设的后验概率。

2.2 RFID阅读器检测模型

算公式(4)中每个样本的先验概率的关键是准确计算p(zij|hi)的可能性。为此引入n-状态检测模型来精确的计算其可能性。

RFID的物理特性决定其数据采集和传输是不可靠的。阅读器的检测范围可以分为主要检测区域和次要检测区域,其中主要检测区域在距离阅读器较近的范围内,其阅读率可以维持在95%,而次要检测区域的阅读率呈直线下降趋势,超出阅读器的检测范围时,阅读器的阅读率恶化为0。

为了解决这个问题并利用重复的数据,本文提出了一个n-状态检测模型,将阅读器的所有检测区域分成成许多子区域,每一个区域都对应唯一的读取率。不同状态的读取率构成一个等差数列。

为了捕获这种相关性,选择n=3(生成3-状态检测模型)具有更好的可行性。当系统有更多可靠的阅读器就有更少的不确定性,3-状态模型比2-状态在目标定位上提供更多的信息。根据读取率和信息熵之间的关系可以证明,信息熵随着读取率的增大而减小,但是n的取值也不是越大越好,实践应用中3-状态检测是比较理想的模型。

3 具有约束的采样算法

由于公式(4)容易计算但难于采样,本文提出一种对采样进行约束管理的Metropolis- Hastings采样算法(简记为MH-C),算法产生的每个样本可以自动的满足所有的约束,可有效地从先验分布中抽采样本。

马尔可夫链蒙特卡尔理论(MCMC)是通过模拟一个马尔可夫链来从状态空间采样。当样本的数目足够大时,所有的样本都能随机获得后验知识。因此,可直接构建马尔可夫链来近似逼近后验概率。选择MCMC而不是其他采样技术是因为MCMC维持了样本之间的相关性。在MCMC中,下一个样本的选择取决于当前的样本[8,9]。下面首先阐述如何利用采样样本的相关性来提高效率,定义如下术语:

定义1 候选样本. 称从采集器获得的任何样本为候选样本,一个合格的样本是满足所有约束的候选样本。

通常采用的完全随机采样方法中,由于相邻样本相关性的丢失,产生独立样本的效率将受到影响。可以利用样本之间的相关性来改善采样效率,合格的采样空间是完全采样空间的一个子集。

尽管MCMC提高了采样效率,MCMC所产生的样本不一定是一个合格的样本。虽然原始的Metropolis- Hastings算法可以通过构造马尔可夫链来评估后验分布,但它没有把约束条件考虑进来。如果利用约束采样,将会拒绝许多样本,这是由于它们是不合格的样本。

为了在采样中利用约束条件,提出了MH-C方法。MH-C的每个区域都与资源描述符的变量相关,当前的资源描述符表示有多少相关资源仍然是可用的。假设使用一个变量DescriptorZonei跟踪区域i能可用的空白资源,初始的DescriptorZonei值是区域i内能容纳的最大容量。那么,占用空间值为Volumeobjectj的j物体能否存储在i区域可以表示为:

DescriptorZonei= DescriptorZonei -Volumeobjectj (5)

只有在DescriptorZonei不为0时资源分配才是可行的,否则必须重新采样直到找到一个满足所有约束新的分配。因此,资源分配是否可行的问题可以简化为检测描述符的值。

MH-C算法基于Dobject的空间矢量通过空间迭代获得每个样本,如果任何分配的资源符小于0,那么目前的样本不可能成为合格样本,应该丢弃当前的值并重新选择维度进行采样。构造一个随机游走链,选择关于步长的一致方案分布。MH-C算法的描述如下,表1给出了相关符号的含义。

Algorithm 1 支持约束的Metropolis-Hastings 采样算法

1) 初始化[S] = ?,获得原始数据矩阵[?]

2) 载入n-状态检测模型

3) 将资源描述符初始化为最大容量.

4) 初始化[C],在Post([H]|[?])中随机选择合格的样本作为开始点.

5) for Cycle = 2 to E+B do

6) for j = 1 to Dobject do

7) repeat

8) Pj = Cj+ Random(-S,S) {根据当前值和建议步长生成新整数}

9) if Pj < 1 then

10) Pj = 1+ (1-Pj ){溢出并重设}

11) end if

12) if Pj > Dzone then

13) Pj = Dzone -(Pj -Dzone)

14) end if

15) until所有与引用区域相关的资源描述符值不小于0,在接受当前对象的建议分配之后

16) j j + 1

17) end for

18) Jitter生成0,1之间的一个随机数

19) if Jitter ≤ min(1, [Post(P|?)Post(C|?)]) then

20)[C] = [P] //Metropolis-Hastings采样

21) end if

22) 将[C]添加到[S]作为下一个样本

23) 重置所有资源描述符

24) Cycle Cycle + 1

25) end for

算法1中用到的符号含义如下:[S]:样本集, [C]:马尔可夫链上当前的样本,[P]:马尔可夫链上建议的样本,Cj:[C]的第j维,Pj:[P]的第j维,E:有效样本个数,B:老化阶段的样本个数,S:统一建议分布步长,Dobject:监测对象的总数,Dzone:区域总数。

4 实验验证

为了验证算法性能,本文模拟大型仓库生成检测物品的RFID数据集,让物体对应盒子,区域对应货架。采用3-状态检测模型实现MH-C算法,并且作为对比,扩充基于SIS的方法[4],增加利用重复读数功能,达到可对比程度。

4.1实验数据及测度

本文设计了模拟器生成大型仓库的随机产生分布矩阵(行表示物体,列表示货架(区域))和具有噪声的RFID原始数据,通过100次试验来验证MH-C方法在重建的效率和准确性方面相对于SIS的性能。

定义2 前k成功率. 真实位置匹配了重建分布中前k个预测位置的箱子个数在总共箱子个数中所占的百分比,k=1时表示最佳成功率。

4.2 验描述及性能分析

本节模拟5000个箱子和200个货架的大型仓库环境,比较MH-C和SIS在重建效率和准确性方面的性能。在重建精度实验中,随机生成的真实分布矩阵和100个相应的RFID蕴含噪声的矩阵。在每个重建分布中,记录采样时间,计算平均K-L散度,5000例的最佳成功率(每个结果进行平均5000次位置查询)。

实验1:重建准确性

在本实验中,改变合格样本的数据、数据冗余度和每个阅读器管理货架的数目,研究这些因素对重建准确性的影响。

实验2:冗余度对算法性能的影响

接下来,通过改变数据的冗余度研究MH-C和SIS的重建准确度的性能。因为误报实际上是阅读器成功检测到了在次要检测区域的物体,使用在次要区域的读取率来定义数据冗余程度。越大的冗余程度表明一个阅读器越可能检测到邻近区域(货架)内的物体。

实验3:阅读器管理货架数目对算法性能的影响

为了使部署在仓库中的阅读器更加有效率,用户可能要为每个阅读器分配多个货架。目前实际应用场景中,一个普通的RFID阅读器的整体检测区域几乎没有超过5米的,因此设置每个阅读器管理货架数目从1到6变化。

5结论

实际应用中,RFID设备所接收的数据被是不可靠的。本研究提出采用贝叶斯推理方法清洗RFID原始数据,从而可以充分利用具有时空冗余的读数。为了估计位置信息和聚合查询结果,本方法采用先验知识来量化每个物体的不确定位置和每个区域的剩余容量,并且提出了n-状态检测模型捕获可能性,设计并实现了MH-C算法。实验证明本文提出的方法可有效的环境中从后验分布环境中符合约束采样,可以广泛地应用于物联网实际应用。

参考文献:

[1]L. Sullivan. RFID Implementation Challenges Persist, All This Time Later. InformationWeek, October 2005.

数据清洗范文第6篇

SOA为IT系统的设计、开发和部署提供了一种新的思路。通过引入SOA的架构,IT系统解决了系统紧耦合、异构系统的互联互通及标准服务契约等问题。特别是SOA把Web Service作为SOA中的服务的标准实现方式,为后续的服务组合和业务流程编排提供了基础。然而,SOA只是为IT系统提供了好的基础架构,至于服务如何组合以及服务之间的数据如何交换还需要另外考虑。比如,保证服务之间交换的数据的正确性就一直是组合服务时一个很头疼的问题,因为数据的质量不仅影响服务组合后的运行结果,很可能还会影响未来基于这些数据所做决策的正确性。

实际上,有关数据质量保证的研究在许多领域都在进行中,特别是在数据库和数据挖掘领域。这些研究主要集中于在数据库中标识脏数据,比如在数据库中标识某个表中的多余值或者名字和结构冲突等。另一方面,使用统计的方法来标识数据集合中的可疑数据或丢失数据的研究也在进行中。不过,这些办法都是在数据收集保存下来之后对数据进行处理的,属于事后处理,而本文提出在服务之间进行数据交换的同时进行数据清洗。

独立数据清洗工具的不足

部署独立的数据清洗工具几乎是目前进行数据质量保证最为流行、也最为有效的办法,市场上也有不少商业化的数据清洗工具可供选择。不过,如果SOA环境中数据清洗只是单纯地依靠某个清洗工具,将会引发一些问题。比如,只依靠某个数据库的清洗工具或者数据挖掘系统来完成数据清洗的话,可能由于数据库与应用系统的数据规则不同而导致应用程序无法处理,从而引发程序错误; 或者将不正确的数据存入数据库,从而导致未来决策以及系统间对账的不准确。为了解决这些问题,许多应用系统不得已另外引入了数据清洗工具,尤其是在与数据挖掘有关的应用中。然而,这些工具一般都只应用于数据挖掘等特定应用的特定数据种类(比如,邮件地址、地址变动、寻找重复的人等),而且它们是独立开发的,一般很难在SOA架构内部使用。具体而言,独立的数据清洗工具有以下不足:

首先,不可能保证服务之间数据交换的质量。例如,两个交互服务(服务A和服务B)之间要交换数据(这些数据构成数据集),服务B将数据集的某个数据删除了或者系统中的清洗工具正在对它进行清洗,但是服务A并不知道,可能要一直等待这个数据的到来。要避免出现这种情形,就要求数据清洗服务能够在服务中实时地监测数据的交互。

其次,在SOA架构下,开发者为了满足服务对数据输入和输出的要求,往往需要对服务的内部进行调整。例如,通过集成服务A和服务B来创建一个新的服务,假设A已经输出数据集,但B只是处理该数据集中的部分数据,而且A中的数据并不完全符合B对输入数据的要求,这时,就需要对B服务进行修改,此时独立的数据清洗工具派不上太大用场,而能单独管理服务间的数据交换的独立服务则能完成这一任务。

第三,即使有一个由单独组件开发的清洗工具,如果不满足一定的要求,仍然不太可能灵活地进行脏数据检测。换句话说,即使一个清洗工具被开发成一个组件应用于服务A和服务B,要让清洗引擎重复更新以反映规则中的任何变化,从而建立新的规则去检测从服务A输出的数据中的错误,是非常困难的。这个以单独组件形式存在的清洗工具必须具备灵活地处理数据集中规则和约束变化的能力,而且一定要使用XML作为标准的交互语言。

另外,数据清洗工具是在所有的数据都已经收集存储起来后才使用的,与之相比,在数据输入的同时就进行数据的校验和清洗显然具有更多的优势。为此,人们提出开发出一种独立的服务,该服务符合SOA的规范,能够在服务间的数据交换过程中检测和清洗错误。其优点是能减少开发者组合服务时的重复劳动,而且能有效地管理应用系统中的数据,尤其是像电子商务这类需要频繁交互的系统。实践证明,通过应用此服务来集成基于SOA的CRM和EPR服务,能将两个服务间数据交换中出现的错误减少30%以上。

制定脏数据检测规则

检测和清洗脏数据之前必须明确脏数据的分类以及检测和清洗的规则。

我们根据数据收集、集成及储存的各种数据处理过程,将数据库中可能发生的错误进行分类。如表1所示,能够被处理的用于服务间交互的脏数据种类一共有33种类型。“可检测的”代表脏数据能够被服务开发者设定的限制或者使用特殊工具检测到。在这33种脏数据种类中,有12种属于交互数据错误,其他的数据错误主要发生在数据库中或者只在和其他数据集对比的时候才被称之为脏数据。而在这选取的12种数据错误中,按照服务开发者设置的限定只有6种能被称之为可检测的。而一些数据错误,比如拼写错误、无关数据登记项、歧义数据以及不完整文本都能使用特殊工具检测到(如拼写检查工具)且大部分都与自然语言处理有关,所以这些数据种类都不属于此次研究的范畴。

接下来,要将检测和清洗脏数据的规则与脏数据的分类对应起来(参见表2),表1中可检测的6种交互数据错误在表2中分别都有相应的检测和清洗规则。值得一提的是,在规则11中列出的错误检测采用的不是专门的工具,因此不可能标出识所有的错误。其中,部分的错误检测可以使用普通的表达式,比如使用yy/mm/dd、yyyy/mm/dd来描述日期、邮政编码中的数字或者电话号码只能是数字、用“string@string(.string)”来描述邮件地址、用“(string.)+string(.string)”来描述网址和URL等。

开发数据清洗服务

SOA中控制数据质量的基本服务由转换、检测以及清洗等处理过程构成(参见附图),即输入数据和用户数据约束的转换过程、按照特殊规则从脏数据中提取必需信息的检测过程以及在浏览器中显示脏数据的清洗、相关统计的清洗过程。

该服务在Windows 2000 Server环境中用Java 2的企业版实现。下面对服务中的主要过程进行描述:

从输入到XML转换器: 对服务器A中输入的数据进行XML要素的映射(服务中所有的规则都是使用XML编写的),如需要可为其赋予层级结构。

数据约束: 从服务器用户接受输入数据的相关约束。例如,ID必须唯一且不能为空。

生成XML的数据约束扩展信息: 包含了从输入文件中转换成XML扩展文件,其中每项数据的约束都是符合规定的。XML文件的扩展必须符合规定的XML文档类型定义(DTD)。这种DTD分为4部分: 规则申报部分、类型申报部分(过滤出错误类型数据)、数据申报部分(按照输入规定接收到的元素值和数据)以及属性申报部分(每个元素的约束)。

XML扩展语法: 只有那些必要的信息才使用XML语法分析器从XML扩展文件中提取出来。作为分析结果,每项数据的元素名、元素ID、需要的规则数量、类别数量和规则条件都被提出来。

检测脏数据: 根据此前制定的有关脏数据的检测规定对数据进行分析。

清洗: 根据上面的检测结果和制定的清洗规则对有错误的数据进行修正。清洗信息提供了被检测出的脏数据的名称和值。

生成报告: 依据脏数据的统计信息生成报告。

将被清洗后的数据转换成XML: 当数据被清洗后,数据值将被替换成清洗后的值。

检验数据清洗服务

我们将这项服务应用在一个由9个服务构成的系统中,用于完成订单的处理。

订单的处理过程如下: 购买者将订单信息通过CRM系统(客户关系管理系统)发送给ERP系统(货品管理系统)。ERP系统判定是否要批准或拒绝该订单,然后使用电子邮件方式发送给客户或者将拒绝结果展示在对话框中。这个系统由多个服务组成,分别是负责下产品订单的CRM系统(Service A)和订单处理的ERP系统(Service B),这两个服务处理之后的信息由XML文件服务(XML文件服务)先转换成XML文件,然后发送给传输信息的服务(SMTP服务)和显示结果的服务(结果显示服务)。为了减少数据在服务A与服务B之间数据转换时所发生的错误,应把脏数据检测和清洗服务加入到这两个服务之间。

这是一个很有代表性的多服务整合并在服务间有比较大量的数据转换的应用实例。通过将脏数据检测和清洗服务作为一个独立的服务器嵌入到CRM系统和ERP系统之间内,即可对CRM系统和ERP系统的数据进行分析和检测,这些数据错误包括购买者所填信息错误、服务间数据处理范围不一致以及网络原因造成的数据传输错误等。

数据的检测和清洗过程如下: 当从CRM系统中接收到了数据集时,数据检测和清洗服务器通过相关界面从用户服务器接收数据的约束,此时将生成XML扩展信息并且发送至检测流程。在检测流程中,服务使用脏数据检测算法进行检测并将结果展示给用户,提供给客户一个环境去清理脏数据。另外,该项服务可将所有数据信息或是所有脏数据信息以及统计结果展示给用户。

保险业务系统的数据质量保证

目前在保险行业,伴随行业监管要求的逐步加强、保险公司全国大集中模式和基于SOA进行系统整合的趋势日益明显,保险公司现有系统之间、与行业监管平台之间、与外部渠道之间,甚至保险公司总公司与各个分公司之间都存在各种服务调用和数据交互。如何保证交互过程中的数据质量问题,已经不仅仅影响保险公司自身的运营,还直接影响行业监管部门对保险公司的监管,甚至会影响到终端客户的切身利益。

实际上,在保险行业应用的系统整合过程中,数据质量及数据一致性问题是集成的重中之重,如何保证业务系统、财务系统、再保系统、决策分析系统,甚至行业监管机构间传输的数据的一致性和各自系统中数据质量问题,是基于SOA集成项目的一个重要课题。因此,在基于SOA进行系统整合的过程中,数据的检测和清洗工作的重要性将被提升到一个新的高度。

而本文介绍的这种基于SOA的脏数据检测和清洗服务可以应用于保险行业的业务系统,特别是频繁进行数据交互的业务系统中。比如,保险核心业务系统需要集成周边渠道、财务和再保等,而成熟的脏数据清洗服务对数据质量的有效控制将直接帮助保险公司降低经营风险、减少决策失误和提升客户满意度。除了保险核心业务系统与财务系统和再保险系统之间的数据交换外,可以应用脏数据的检测和清洗服务的还有行业监管平台与保险公司核心业务系统之间的数据交互以及数据挖掘。

数据清洗范文第7篇

摘要

数据质量问题会对大数据的应用产生致命影响,因此需要对存在数据质量问题的大数据进行清洗.MapReduce编程框架可以利用并行技术实现高可扩展性的大数据清洗,然而,由于缺乏有效的设计,在基于MapReduce的数据清洗过程中存在计算的冗余,导致性能降低.因此文中的目的是对并行数据清洗过程进行优化从而提高效率.通过研究,作者发现数据清洗中一些任务往往都运行在同一输入文件上或者利用同样的运算结果,基于该发现文中提出了一种新的优化技术———基于任务合并的优化技术.针对冗余计算和利用同一输入文件的简单计算进行合并,通过这种合并可以减少MapReduce的轮数从而减少系统运行的时间,最终达到系统优化的目标.文中针对数据清洗过程中多个复杂的模块进行了优化,具体来说分别对实体识别模块、不一致数据修复模块和缺失值填充模块进行了优化.实验结果表明,文中提出的策略可以有效提高数据清洗的效率.

关键词

大数据;多任务优化;海量数据;数据清洗;Hadoop;MapReduce

1引言

本节主要介绍研究背景及其意义、海量数据清洗系统、本文优化方法的主要思想、本文的贡献与结构.

1.1研究背景及其意义现今企业的成功和社会的进步,越来越依赖于数据和对其所做的分析.为了获得竞争优势即使是小企业也会投入时间和精力来收集和分析数据.很多大公司都部署了自己的云服务平台,国内比较著名的有百度云、阿里云、天翼云①等.但是如果一味地将精力投入到对数据所做的分析而不关注数据本身,很可能产生灾难性的后果.统计表明,美国企业中1%~30%的数据存在各类错误和误差[1],医疗数据库中13.6%~81%的关键数据不完整或陈旧[2].根据市场研究公司Gartner的调查,全球财富1000强公司超过25%的关键数据不正确或不准确[3].数据质量问题会使基于其的分析和研究毫无意义甚至还会产生灾难性的后果,在美国由于数据错误引起的医疗事故每年使98000名患者丧生[4].上述实例表明数据质量问题存在于社会生活的方方面面,数据清洗系统应运而生.在海量数据处理领域,MapReduce编程框架作为当下最流行的并行编程开发框架已被Google、Amazon、Yahoo!、Facebook以及国内的腾讯、阿里巴巴等大型互联网公司奉为至宝.将Hadoop用于海量数据处理主要有如下优势:易用性、高可扩展性、高容错性.上述优势使得基于MapReduce的海量数据清洗顺其自然的产生了.海量数据上的数据分析往往需要相对高昂的硬件成本和时间成本,这就引起了人们对优化数据分析的兴趣.当前已经有不少人开始研究大数据上的数据清洗系统,有对整个数据清洗系统进行研究[5-7],也有对其中的数据一致性[8-10],实体识别如文献[11-14]等问题进行研究的.然而现在还没有人对基于MapReduce的数据清洗系统的优化进行研究.现在几乎所有的数据分析任务都可以用MapReduce编程框架来实现,但是在实现过程中往往会存在冗余的MapReduce,基于MapReduce的海量数据清洗系统也不例外.本文提出的基于任务合并的优化方法着眼于系统中冗余的MapReduce,从细节和流程的各个方面实施.

1.2海量数据清洗系统海量数据清洗系统如图1所示,它在Hadoop平台上实施,以一个灵活的结构来处理不同类型的数据质量问题,每种类型的数据质量问题都由一个或多个模块来处理,由哈尔滨工业大学海量数据计算与研究中心提供源代码.系统中的交互模块提供一个输入接口来输入需要清洗的文件以及清洗数据的要求.结果展示模块提供清洁数据的下载链接以及脏数据和清洗后的数据的对比情况.实体识别和真值发现模块用于消冗,其中实体识别把指向同一现实世界实体的元组聚类,而真值发现用来在冲突中寻找出真实值.不一致检测模块发现数据中违反依赖规则的部分并且尝试把数据修复到符合规则的状态.数值填充部分检测数据缺失部分并填充.用户可以选择合适的模块来处理所遇到的数据质量问题。

1.3本文优化方法概要和其他优化方法本节首先给出基于任务合并的优化方法,然后对基于Hadoop平台的海量数据清洗系统进行优化.一个实际的系统往往需要很多轮MapReduce来实现.有文献表明,对于比较复杂的单一型人物,拆分开来执行的话性能反而更好.但是根据MapReduce编程方式的特点,往往需要将一个问题分解成很多简单的任务,每一个任务由一轮MapReduce实现.在大多数情况下,这种“分解”是过度的,由此而产生冗余的MapReduce.将可以合并的任务进行适当的合并,并且在不改变原系统的算法复杂度与迭代可终止性等前提下,满足可以减少原系统的MapReduce轮数和IO次数等条件进而达到优化的目的.与本文研究方向相同的工作最杰出的优化方法有MRShare[15-16],后者是在前者的基础上发展而来的优化方法并且实现过程复杂,优化效率提升不是很明显.MRShare把多个共享相同的map输入或输出的任务合并成一个任务,减少扫描文件的次数,从而达到优化的目的.但当合并后的任务的较大的map输出的sort代价高于合并之前的多个独立的较小的map输出的代价时,就不会有任何优化效果.本文提出的基于任务合并的优化技术针对冗余计算和利用同一输入文件的简单计算进行合并,通过这种合并可以减少MapReduce的轮数从而减少系统运行的时间.通过对整个系统的框架与流程进行优化设计,有效地提高系统的效率.

1.4本文的贡献本文的主要贡献有:(1)提出一种基于MapReduce的应用系统的优化方法.(2)对海量数据清洗系统中计算较为复杂的3个模块进行讨论并提出优化方案.(3)对海量数据清洗系统的各个模块优化前后进行了大量的对比实验.

1.5本文的结构本文第1节介绍背景、主要内容和本文结构;第2、3、4节详细讨论优化方法与实施过程;第5节给出实验结果和分析;最后在第6节给出结论.

2优化的缺失值填充

在实际的生产生活中,数据缺失是一种不可避免的现象,尤其是在数据收集工作日趋自动化的今天.本模块是一种利用朴素贝叶斯分类的缺失值填充机制.

2.1缺失值填充模块介绍举一个例子,假设一个学校有60%的男生和40%的女生.女生穿裤子的人数和穿裙子的人数相等,所有男生都穿裤子.一个人在远处随机看到了一个穿裤子的学生,那么该学生的性别是什么?(1)参数估计模块整个缺失值填充系统是用贝叶斯分类的思想来计算出概率最大的取值作为填充值.参数估计模块的任务是利用式(1)计算出所有的概率,其中P(X)对所有取值为常数,所以只需要计算P(X|Ci)×P(Ci)即可.在各个取值的先验概率未知的情况下,不妨假设其是等概率的,因此只需计算P(X|Ci)即可。(2)连接模块系统在填充模块会根据式(2)计算出含有缺失值的元组在它的依赖属性取值确定的所确定的各个待填充值的概率.但是由于MapReduce函数在map阶段和reduce阶段一次只能处理一条记录,所以系统必须使依赖属性取值和其条件概率关联起来,这就是连接模块存在的必要性和需要解决的问题.连接模块的输入数据为参数估计模块的输出数据和原待填充数据,输出数据是将含缺失数据的元组中依赖属性取值与该取值条件概率相关联的文件.此模块的输入数据为原待填充数据和连接模块的输出,输出数据为经过填充之后的数据.利用式(2)计算出每个Ci(待填充属性可能的取值)对应的条件概率,选择其中P(Ci|X)概率最大的Ci进行填充.(3)填充模块填充模块由一轮MapReduce实现,首先将连接模块的输出结果和原始输入数据以偏移量为键值进行连接运算,map阶段和连接模块类似,在此不再说明.reduce阶段利用式(2)计算出每个Ci(待填充属性可能的取值)对应的条件概率,选择其中P(Ci|X)概率最大的Ci进行填充.填充效果见图3.以上是对缺失值填充模块的简要介绍,详细介绍参考文献[17],本文仅对其离散类型的缺失值填充做考虑.

2.2系统分析与优化首先分析一下整个模块各个子模块之间的数据流和联系纽带.参数估计子模块利用输入数据中的不包含缺失数据元组来计算以依赖属性的不同取值为条件的待填充属性的各种取值的条件概率①.在计算填充值的过程中需要用到以各依赖属性的当前取值为条件的待填充属性的各种可能取值的条件概率②,②是①中的一组特定的值,②和①的联系纽带是依赖属性的取值.而②和原始数据中的待填充元组之间的联系是该元组的偏移量.因此在参数估计模块和填充模块之间增加了连接模块.仔细观察系统各阶段数据流可以发现,在参数估计的map输入和map输出数据中均包含元组的偏移量,但是reduce输出数据中只有属性值和②.这种情况使系统必须通过增加一个连接运算才能将②与待填充元组的偏移量结合在一起.针对上述情况本文提出了一种将参数估计模块和连接模块的任务合并的优化方案,即在参数估计模块就将输出的条件概率与含有缺失值的元组偏移量关联起来.其算法如下.下面举例说明优化后的算法流程,表1为包含缺失值的数据,缺失值可能为y或n.前两条元组不含缺失值,故仅将其按属性拆分;第3条元组含有缺失值,我们在每种可能取值的情况下按属性拆分,Map阶段输出结果见表2.Reduce阶段检查所有输入数据的前缀,若不包含缺失值则进入条件概率计算环节;若包含缺失值则将其录入likelihood(用于判定条件概率是否需要输出).最后选择属性值存在于likelihood中的条件概率进行输出,输出结果见表3.优化后的参数估计子模块,Map阶段的算法复杂度为O(n+ML),其中n为不包含缺失值的元组的数量,M为包含缺失值的元组的数量,L为缺失值可能取值的数目.一般情况下Mn,故O(n+ML)=O((1+L)n).因为L为一个远小于n的常数,所以Map阶段的算法复杂度为O(n).Reduce阶段的算法复杂度为O(n).故整个参数估计子模块的算法复杂度为O(n).优化前后,参数估计子模块的算法复杂度一直是O(n),填充子模块未做优化.整个缺失值填充模块的MapReduce轮数和IO次数均由优化前的3变为2,加速比为3/2,优化效果明显.

3优化的实体识别

实体识别,就是识别出同一实体的不同表现形式.不同的数据来源对同一对象的表示形式往往有着不同的要求,并且在数据的存储和传递过程中均会产生不可避免的错误,因此产生了同一实体的不同表现形式.关于MapReduce框架下的实体识别技术,现在已经有了相关研究工作[18-19],但是他们只解决了异名实体识别问题,对同名问题没有进行研究;而我们的工作可以同时解决了异名和同名问题.

3.1实体识别模块介绍(1)预处理.系统读入海量数据文件并进行预处理,给每一条输入元组加上一个唯一的序号———实体ID,方便后续处理.(2)初步聚类.读取预处理模块生成的数据,按照相同属性值进行初步聚类,生成属性索引表.(3)实体识别.对实体进行识别,对同一属性索引表中的实体对计算相似度并与阈值进行比较,大于阈值的相似对输出成相似对集合文件.(4)实体划分.依据相似对集合文件生成图,通过对图的划分获得实体划分结果.以上是对实体识别模块的简要介绍,详细介绍参考文献[20]

3.2系统分析与优化通过研究发现初步聚类模块和实体识别模块,对预处理结果重复利用了N次(N为待处理数据每条元组包含的属性个数),而且后续的实体识别模块也是在单一属性上处理的.如果将预处理模块和实体识别模块看作一个整体(系统实际应用中也是这样的),那么就是对输入数据文件扫描多次,并且只能利用输入数据中的一部分,系统对输入数据的利用率很低.此外系统每次分配任务都需要消耗额外的资源.我们需要将分开处理各个属性的初步聚类和实体识别合并成一次能处理所有属性进而只运行一轮就能处理每条元组所有属性的解决方案.为此本文针对实体识别模块提出的优化思想是:在初步聚类子模块一次处理所有属性,生成所有属性值的属性索引表.这样就能将原来按属性分开处理的预处理和实体识别合并起来.下面给出具体的优化方案和算法.(1)初步聚类子模块,map阶段不是仅仅输出第i个属性值,而是将所有属性值都输出.但是为了区分初步聚类产生的结果———属性索引表集合中的1101期杨东华等:基于任务合并的并行大数据清洗过程优化实体ID是来自不同的属性,系统在map输出数据的key上做了一些改动,在原key前加上了一个前缀,由“属性值”变成“属性序号$属性值”.因为MapReduce是按照key进行分类的,所以只有同一属性的具有相同属性值的实体才会进入同一属性索引表.reduce阶段将属性序号作为实体ID的前缀加在实体ID中.以下是优化后的初步聚类算法.其中实体ID是每个元组的编号,在预处理阶段为每一个元组(一行数据)设定唯一的实体ID.属性ID是属性在元组中的顺序.下面举例说明优化后的算法流程,待识别数据如表4所示.Map阶段将所有元组的按属性拆分后输出,结果如表5所示.属性值相同的实体会进入同一个reduce,并输出成属性索引表,如表6所示。优化后的初步聚类模块,map阶段的算法复杂度为O(n(x+x2)),其中x为属性个数,实际应用中x为一个很小的常数值,故其计算复杂度为O(n).reduce阶段除了在附加的读取属性序号外没有任何改动,其计算复杂度为O(n).综上整个初步聚类模块的算法复杂度为O(n).(2)实体识别子模块,因为整个实体识别模块是在初步聚类生成的属性索引表中进行的,而初步聚类模块的改动保证了同一属性的具有相同属性值的实体ID聚集在同一个属性索引表中,所以这一模块的算法不需要修改.除了在第3个MapReduce的reduce阶段去除实体ID中包含的前缀外,没有任何更改.这样做的目的是为了使同一实体的相似度能够在第4个MapReduce中汇合.整个实体识别模块的算法没有经过改动,所以其算法的时间复杂度仍保持O(n).由于本文只对系统Hadoop上运行部分进行优化处理,所以将实体划分模块视作常量.在时间复杂度方面,从上一小节对实体识别子系统的介绍和本小节前面的一部分的优化方案中算法的计算复杂度可以看出,优化前后没有改变各个模块以及各个模块内部的各个MapReduce的计算复杂度.优化前的MapReduce轮数为1+N(1+4)=5N+1,优化之后的MapReduce轮数为1+1+4=6,加速比为(5N+1)/6.正常情况下N大于1,所以加速比大于1,并且N越大加速效果越明显.IO次数也由先前的5N+1次变为6次,IO次数减少使得系统用于IO的时间减少.另外由于MapReduce的轮数减少,系统用于任务调度的时间和资源也相应减少.综上,从理论上讲,通过本文的提供的优化方案能产生明显的优化效果.

4优化的不一致数据修复

在实际的数据库系统及相关应用中由于种种原因,其中包含的数据违反最初定义的完整性约束,所以存在大量不一致数据.本系统利用数据依赖理论中的条件函数依赖原理,定义完整性约束,利用完整性约束进行不一致数据修复.本文的重点在于提高不一致数据修复模块的性能和效率,使之一致.至于如何保证这样的修改过程是正确的,是由条件函数依赖理论所决定的,本文相关的理论证明和推导详见文献[9-10].

4.1不一致数据修复模块介绍不一致数据修复模块步骤的简要介绍如下:(1)系统读入待修复的海量数据文件和cfds文件并进行预处理,将数据格式更改成符合系统要求的格式并对cfds进行初步检测,方便后续处理.(2)对预处理结果中的数据文件进行检测与修复,得到初次修复结果.(3)对初次修复结果进行检测,判断修复工作是否引入了新的不一致.若引入了新的不一致则返回步骤(1),否则进入步骤(3).当然为了避免系统陷入死循环,系统为检测与修复的次数设置了一个上限.(4)对修复结果进行后处理,将数据格式更改成数据的原始格式,使得修复结果能正常被其他系统使用.以上是对实体识别模块的简要介绍,详细介绍见参考文献[21].

4.2系统分析与优化不一致数据修复子系统的4个模块中除第1个模块的CFD一致性检测子模块外都是在MapReduce编程框架上实现的,在本文的研究范围内.本模块的一个重要缺点是没有掌握MapReduce编程“分解与合并”的精髓,将本来仅需要一个Map或者一轮MapReduce便可完成的任务拆分成一轮或多轮MapReduce,由此使系统效率下降.为此我们在不改变系统算法复杂度的条件下进行任务合并.(1)预处理模块预处理模块的脏数据预处理子模块功能很简单,就是给输入数据建立索引,实施过程中没有涉及到数据的分解与合并,可以通过一个map函数实现.算法如下.(2)不一致数据检测与修复模块不一致数据的检测与修复模块中常量违反检测与修复模块通过一轮MapReduce实现,map阶段将元组重新分发了M份(M为输入元组发生常量违反的次数),尽管M实际值一般不大,对reduce阶段的计算复杂度几乎没有影响.但是M的存在会使中间数据量扩大M倍,对系统通信造成很大负担.更重要的是在系统计算出建议修复值的同时就可以将其修复,那么就没有必要将找到建议修复值的过程和修复过程分开.为此本文提出的优化方案是利用一个map函数实现常量违反检测与修复子模块.将常量违反与修复子模块通过一个map函数实现之后,经过常量违反修复的数据直接进入变量违反修复环节.两者输入数据的格式是相同的,假如原始数据中不存在常量违反,那么两者输入文件就是完全相同的.基于上述观点,本文提出了将常量违反修复与变量违反修复合并的优化方案.在这个优化方案中常量违反修复位于原变量违反修复的第1轮MapReduce的前端,让常量违反的结果在Map函数内部直接应用于变量违反.算法如下.其中,offset为元组索引值,tuple表示该条元组,fix_tag为修复标志,用来区分是否发生违反需要修复,0表示发生违反需要修复,1表示不需要修复.cfdindex是tuple违反的CFD的序号,ptindex是该tuple违反的CFD的模式表中的模式元组序号,attrindex标志该tuple的不一致数据项的属性序号,fixvalue即为该属性值应修复的结果.下面举例说明优化后的算法流程,待修复数据如表7所示.为了便于说明,本例中仅使用1条cfd和一个tp,分别为1:([CC,AC,PN][STR,CT,ST])和T1:01,908,_,_,MH,_.Map阶段将每一条输入的待修复元组与模式元组tp作比较,进行常量违反修复,然后再进行变量违反修复.第1条元组没有发生常量违反,遂进入变量违反修复环节,其map输出为表8中第1行.第2条元组发生常量违反,经常量违反修复进入变量违反修复环节,其map输出为表8中第2行.下同.在时间复杂度方面,从预处理小节和本小节优化方案中算法的计算复杂度可以看出,优化前后没有改变各个模块以及各个模块内部的各个MapReduce的计算复杂度.在MapReduce轮数和IO次数方面,系统的MapReduce轮数由优化前的1+1+2+1+1+1=7变成优化后的1+2+1+1=5.仅从MapReduce轮数来看系统的加速比为7/5.此外系统的优化工作还使得预处理模块的MapReduce变成了map,这也会相应地减少系统的运行时间.随着MapReduce轮数的减少,系统的IO次数也相应地减少,这也使得系统的IO负担减小。综上所述,通过本文提供的优化方案,不一致修复子系统会获得理想的优化效果.

5实验结果

整个系统在Ubuntu12.04.1操作系统中的Hadoop1.2.1平台上,用java语言实现,软件开发环境为Eclipse.实验运行的集群采用12个节点,1个tasktraker(namenode),11个jobtracker(data-node).集群由12台机器组成,硬件环境为Inteli73770处理器,主频为3.4GHz,内存8GB,1TB硬盘空间.

5.1实体识别优化实验为了使系统的优化效果更有说服力,所有实验数据是来自DBLP的真实数据集.针对系统的特点,实验分别从扩展性、集群的并行化程度和数据的属性个数3个方面验证系统的优化效果.DBLP的数据规模并不大,看似不需要在Hadoop上实现.但大家公认的数据源往往数据量比较小,使用DBLP数据集的意义不是因为其规模而是在于DBLP数据集是真实数据,这样做可以增加本文实验结果的可信度.

5.1.1扩展性实验本实验考虑数据集合大小对优化效果的影响,实验采用由真实数据集DBLP数据集,选择其中的title,authorandco-author,journalorurl这3个属性,选择大小分别为13.2MB、32.3MB、64.9MB、97.1MB、128.9MB的数据作为实验数据.实验中各属性的权值分别为0.9、0.05、0.05,实验结果如图7所示.实验中对比了基本的实现(Nave)、文献[19]中的BlockSplit和PairRange与基于本文中任务合并的优化方法优化后的实体识别4种方法在不同数据集合大小下的运行结果.随着数据集合的增大,优化前后系统的运行时间都在增加,但是优化前和优化后系统运行时间的比值(加速比)均在2.3左右.这是因为本次实验所使用的数据具有3个属性,按照2.2节中对优化效果的分析,应具有的理论加速比为(5×3+1)/6=2.67与实验结果一致.由于基于BlockSplit和Pair-Range方法的实体识别实现过程的运行时间比基于任务合并的优化方法复杂,故其运行时间均比本文提出的优化方法对应的运行时间长.本实验说明优化设计方案有良好的扩展性.

5.1.2集群的并行化程度对优化效果的影响实验考虑集群中Reduce个数对优化效果的影响,实验采用由真实数据集DBLP数据集,选择其中的title,authorandco-author,journalorurl这3个属性,选择大小分别为128.9MB含有100000条记录的数据作为实验数据.实验中各属性的权值分别为0.9、0.05、0.05,设置Reduce个数为2、4、6、8、10,实验结果如图8所示,在不同的并行化程度下优化效果明显.从图8中可以看出系统运行时间随并行化程度的增强而变长,这不符合大家普遍认为的“并行化程度越高,系统运行时间越短”的常识.产生这一现象的原因是,实验数据集数据量较小,增加系统的并行度给系统带来的开销要大于由此带来的好处.无论如何,系统在不同的并行度下达到了大约2.3的加速比,优化效果符合预期.5.1.3数据集的属性个数对优化效果的影响针对优化方案的主要思想:充分利用输入记录中的所有属性,设计了本实验.实验研究输入元组中的属性个数对优化效果的影响.实验结果如图9所示,在处理同样大小(记录条数)的记录时,随着记录中包含的属性的增多,优化效果越来越好.从上述数据可以看到:当处理的元组包含一条属性时,系统的优化效果最差,比优化前运行效率还要低;但是随着属性的增加优化效果越来越好.本文的优化工作针对的是系统在处理多属性时不能充分利用输入数据,并且通过循环处理每一个属性增加了MapReduce轮数;但是处理单属性元组时优化后的方案产生的中间数据量多于优化前,并且处理过程变得更加复杂,因此产生了上述实验现象.

5.2不一致数据数据修复优化实验为了验证系统在真实生产环境中的工作状态,实验采用来自真实数据集Adult的数据和由TPC-H生成的数据集.进行了在Adult数据集上的加速比验证实验、在人工数据集上的扩展性和并行性验证实验.

5.2.1加速比实验实验采用条件函数依赖总共包含2条cfd,共有5条模式元组.根据cfd及其模式元组为来自Adult数据集中的无缺失值元组注入错误,使其违反一条或者多条约束.实验条件和实验结果如表9所示,通过实验证明系统在真实数据集上的加速效果明显,符合优化方案设计预期.此次实验加速比为1.39,理论加速比大于1.4,优化效果符合预期.

5.2.2扩展性实验为验证优化工作在不同大小的数据集上同样有明显的优化效果设计了本实验.实验利用了由TPC-H生成的lineitem.tbl表中的5个属性生成的数据集,CFDs由一条cfd包含2条tp构成.实验结果如图9所示,可见随着数据集合的增大优化效果会变好,说明优化设计方案有良好的扩展性.从图9可以看出优化前系统运行时间随数据集增加呈线性增加,优化后系统运行时间随数据集的增加也呈线性增加,但前者的斜率更大.此外,系统优化前后的加速比从1.59一直上升到2.20.一方面,优化前各个模块的计算任务相当,但是优化工作大大减轻了除不一致数据检测与修复模块之外各模块的负载;另一方面,实验中为了突出数据集的大小对系统运行时间的影响,仅设置Reduce个数为2,故随着数据集的增大优化前的系统率先满负荷运行.从而出现了图10中对比鲜明的实验结果。

5.2.3并行性实验为验证并行程度对优化效果的影响,设计了本实验.实验利用了由TPC-H生成的lineitem.tbl表中的5个属性生成的数据集,CFDs由一条cfd包含2条tp构成,详见图11.从图10可以看出系统在并行度较低(Reduce个数为2)的情况下加速比最高达到2.20,之后随着系统并行化程度增高优化效果变差,加速比降低.并且优化前的系统随着系统的并行度的提高使得运行时间缩短,而优化后的系统基本保持不变.这是因为优化之前的系统处理数据的能力减弱,很容易满负载运行,只能通过增加系统的并行化程度提高数据处理的效率,故随着并行度增加系统运行时间减小;而优化后的系统吞吐量大,与处理和前者相同的数据一直都没有处于满负载状态运行,故增加系统的并行度带来的好处不明显.

5.3缺失值填充优化实验为了验证系统在真实生产环境中的工作状态,本文的实验采用来自真实数据集Adult(www.archive.ics.uci.edu/ml/datasets.html)的数据和由TPC-H生成的数据集.进行了在Adult数据集上的缺失率对优化效果的验证实验、在人工数据集上的扩张性实验和并行性验证实验.

5.3.1缺失率对优化效果的影响实验主要研究不同的数据缺失率对优化结果的影响,通过将完整数据集按一定的比例(缺失率)随机置空数据生成实验所需的各种缺失率的数据.本文选取其中9个离散属性,缺失属性有7种取值,实验结果见图12.在图中所示缺失率下,加速比稳定在1.5左右,与本模块的理论加速比3/2相吻合.

5.3.2扩展性验证实验本实验利用由TPC-H生成的数据表lineitem.tbl选取其中5个属性,分别选择不同的记录条数生成实验所需的数据.图13所示实验结果表明,无论优化前后,系统的运行时间均随数据集的增大而增大,但是加速比均保持在1.5左右,与本模块的理论加速比相吻合.

5.3.3并行性验证实验为了验证系统在不同并行化程度下的优化效果,设计了本实验.实验利用由TPC-H生成的lineitem.tbl数据表,数据表共包含5个属性,3000000条元组.随机置空数据表第1列5%的数据(缺失率5%),记录在不同的并行化程度下系统的优化效果.实验结果见图14.在给定数据集上,系统优化前后的运行效率都未随着并行化程度的提高而变好.这是因为对于特定大小的数据集最适宜的Reduce数目是确定的,一味地提高并行化程度只会给系统带来更多地任务分配的开销.无论如何,在不同的并行化程度下优化效果明显.

6结论

虽然整个行业对Hadoop的研究和使用已经有了相当的积累,但是由于使用者对MapReduce编程框架理解不够深刻,所以利用MapReduce设计的软件系统大都效率低下.为此本文提出了一种针对MapReduce编程框架设计的系统的优化方法,并通过了在海量数据清洗系统上的实施.本文提出的优化方法仅需对原系统解决问题的思路稍作改动,几乎不影响其算法复杂性,通过减少MapReduce轮数和IO次数达到优化的目的.优化方法简单,实用性强.未来的工作包括将这种思想利用到更多基于MapReduce的系统中,对实验结果进行更为深入的分析以发现本文提供的优化方法的不足从而提出更好的优化方法.

数据清洗范文第8篇

关键词:RFID;数据清洗;填补;马尔科夫链

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2017)17-0168-05

1概述

射频R别(Radio Frequency Identification,RFID)技术是一种无需和目标对象进行接触的自动识别技术,它通过读写器识别出电子标签的信息来获取用户所需数据。

由于半导体技术的快速发展,目前已经能够生产较低成品的电子标签,这使得RFID技术迅速代替传统的条码技术而广泛应用到日常生活中,比如物流的定位跟踪、货架上物品的管理、机场行李输送等。RFID技术的使用大大提升了现代服务业、生产制造、商业流通、交通运输、医药卫生、军事、邮政、烟草等行业的管理效率和商业价值。可以说,RFID的应用前景十分广阔。但就目前来看,还有着制约其更大范围推广使用的因素亟待解决,那就是在获取RFID数据时用户面临的诸多问题,如数据数据的漏读和数据的多读等。

用户在采集RFID数据时,阅读器上报的原始数据,其准确性只有60%-70%,是无法直接上传给上层应用使用的。其中数据的多读情况较少而漏读情况较为严重,我们需要采取一定措施使数据尽可能还原其真实性。目前较为常用的三种措施为:硬件解决措施、中间件解决措施和存储器解决措施。硬件解决措施指的是提升采集设备和电子标签的属性;中间件解决措施是通过中间件对采集来的数据做相关处理;存储器解决措施是将数据在存储过程中通过智能化控制技术对其进行还原。中间件解决措施以其实用、高效、成本低的特性被广泛用。

2相关研究

目前的RFID中间件数据清洗技术,比较常用的有基于定长滑动窗口的处理方法、在线可扩展清洗框架、自适应滑动窗口的数据清洗、基于完整性约束的清洗方法和基于布隆滤波的清洗方法等。其中基于窗口的清洗方法适用场景广泛,机制简单,实际应用中被采用较多。但是,基于窗口的清洗方案仍有缺陷。

固定长度的滑动窗口在清洗时的优势是较为快速,当硬件设备和周围环境变化较小时清洗效果有明显优势。但是,窗口大小的取值完全取决于行业经验,如果窗口大小设定不当,清洗的效果将十分低下。通过观察图1中的“真实数据”可以推断出,标签一开始处于阅读器的读取范围内,在随后的一段时间里离开了阅读器的读取区域,之后再次回到读取区域内。而在实际采集时,由于漏读情况的存在,呈现的数据流是不连续的,如图中“接收到数据”除了真实离开时阅读器读取不到的一段空白,还有很多大大小小的空白区域。“小窗口平滑结果”显示了利用长度较短的窗口进行处理之后的结果,“大窗口平滑结果”所使用的窗口较长。可以看出,不论窗口大小如何,一定程度上都对数据的漏读现象做了填补,但过小的窗口无法对所有的漏读现象进行修复,而过大的窗口填补了所有遗漏,致使最后的结果对标签离开阅读器射频区域这一事实无法体现。

Jeffery等人基于以上问题,在固定窗口清洗方法的基础上提出可动态调整窗口大小的数据清洗方法――SMURF。该方法创造性地将概率引人清洗模型,将阅读器对标签的读取看作随机事件,从而根据观测值动态的改变窗口的大小。其具体实现过程如下:

如果标签状态发生改变,算法会依据式(8)动态的调整窗口大小。

SMURF算法首先将初始的窗口大小设置为1,然后根据读取的实际情况动态调整窗口长度。如果当前窗口内没有任何阅读,SMURF算法将窗口保持为1。然后窗口以时间片为单位进行滑动,如果当前窗口满足完整性需求,SMURF算法会根据式(8)对标签的状态进行检测。当检测结果表明标签状态改变时,SMURF会将当前窗口长度调整为原窗口的1/2,从而对标签的迁跃做出反应;若检测出标签并未发生迁跃,则算法以当前窗口中点为输出点进行输出,再继续滑动一个epoch来进行下一次处理。若计算得出的满足完整性约束的窗口大小大于当前窗口大小,则算法以2为步长线性增大当前窗口大小,并对当前窗口中点数据进行输出。

3改进算法MC-SMURF

3.1新算法的提出

SMURF算法通过将标签的读取看作是随机事件,通过概率知识判断标签的状态改变,从而减少了固定窗口清洗由于窗口长度设置不当导致的较多积极读或消极读现象。但是,当标签进行频繁的迁跃,或者标签运动速度较快时,SMURF算法不能及时对窗口大小做出合适的调整。算法性能缺陷分析如下:

1)在标签的动态性检测方面,只通过对窗口内标签平均读取率的改变来判定标签是否发生了迁跃,这在某些情况下是不准确的。我们知道,标签的状态改变除非肉眼所见,否则是无法寻找一个百分之百准确及时的判定标签状态改变的策略。

2)对于窗口大小的调整。无论是以2为步长增大窗口,还是将窗口大小设置为原来的一半,窗口的大小调整幅度和标签的状态变化并无关系,这使得在某些场景下积极读和消极读的现象较多。并且,当检测到标签状态变化时,将窗口大小减半是武断的,这可能造成消极读的概率很高;而当窗口以2为步长增大时,可能会因为不能够及时满足完整性需求导致平滑结果和实际数据差异较大。

基于以上两点考虑,在SMURF算法的基础上,设计新的标签状态检测方法和窗口大小调整机制,对标签的状态变化可能通过概率来表现,并将改变概率和窗口大小调整结合,使清洗过程更加高效。

4.2实验结果与分析

该节将本课题的改进算法与SMURF算法和其他固定窗口清洗算法比较来验证改进算法性能,每个固定窗口清洗算法用Static-X表示。

实验通过数据生成器模拟一个6*6m的区域,阅读器的最大读取范围为4.6m,标签个数为30个,每个实验使用数据生成器生成的500个时间片的数据进行处理。

实验过程中,每个算法通过处理数据生成器产生的数据,将结果与真实数据对比,用每个epoch里的错误阅读数来表示各个算法的清洗效果,其中的错误阅读数是指标签在阅读器读取范围但是结果中没有显示的(a false negative),或是标签不在阅读器读取范围但在结果中显示有读数的(a false positive),公式如下:

首先选取“托盘”模型的运动方式来进行仿真实验。设置阅读器的主读取区百分比为70%,通过改变标签匀速运动速度比较各种清洗算法的性能。实验所得数据如图5所示。图中可以看出,随着标签速度增大,小窗口的清洗效果逐步提高,那是因为较小的窗口有更好的填补作用。对于SMURF算法和MC-SMURF算法,它们的清洗效果稳定且高效。而MC-SMURF由于改进了标签状态转变检测条件和窗口大小调整策略,对标签状态变化更为敏感,清洗效果更佳。

第二实验中,使用“随机运动模型”进行验证,通过改变阅读器的主读取区百分比验证随机运动状态下各种清洗算法的性能,并让标签在每100个epoch时改变其状态。实验结果对比如图6所示:

由图6可以看出,小窗口在主读取区百分比较小的时候清洗效果不佳,因为主读取区很小的时候,次读取区的读取率很低,即对标签的漏读率很高,而过小的窗口无法有效地对漏读数据进行清洗,导致错误读数较高。而对于大窗口,其过滤效果随着主读取区百分比的增加几乎没有变化,原因是过长的窗口在清洗的过程中虽然可以将漏读数据清洗完整,但无法对标签的状态变化导致的真实空白数据做出判断,从而将标签离开阅读器读取范围而形成的0数据错误清洗为1。本文的改进算法较SMURF算法和另外两种定长窗口算法有着更好的清洗效果,是因为改进算法对于标签的状态改变判定更为及时准确,同时在窗口大小的调整方面更为合理,使清洗后的数据错误数最低。

5结束语

数据清洗范文第9篇

1 引言

随着交通检测技术和智能交通系统的发展,交通管理者能够获得海量的交通数据。但是现实中,往往由于各种因素如环境、道路突发事件、采集设备故障等导致采集的数据存在缺失、异常、冗余等现象,这会降低智能交通系统分析和诱导能力。因此,如何将获取“脏数据”进行科学合理的清洗是各国学者亟待解决的问题。

2 交通原始数据的选取

本文中使用的数据为四川省某市2014年8月6日的交通流数据,这个数据中有很多路段信息,并且数据采集设备的采集数据周期为5min,相应的信息可以从图1中看出。

每条交通数据都有唯一的VID_LANE_ID号与之对应。而VID_LANE_ID前四位指代某路段的某一具体设备。TRAFFICDATA代表采集数据的时间。DIRECTION为方向编码,代表车辆行驶的方向,TRAFFICDATA_ID记录时间间隔为5分钟,这个时间段非常适合数据分析与预测建模。对于VOL为该路段在5分钟内所经过的车辆总数;SPEED为在观测时间内所有车辆的速度平均值;OCC为占有率,指检测时间周期内有车辆经过的时间总和与检测总时间的之比(本文采集数据OCC省略了百分数)。

3 交通流数据清洗

采集到的真实的交通流数据往往会由于诸如信息传输、设备自身故障、突发交通事故等因素影响会导致其包含有真实数据和不真实的数据。为了使数据分析或者数据预测工作具有科学性和可靠性,往往不能直接使用这些“脏数据”,在这之前需要对这些采集到的原始的交通流数据进行降低甚至消除噪声、简约冗余数据、对异常错误数据进行修正、对缺失数据进行填补等工作,用以提高数据质量,通常称这一过程为数据清洗。

一般说来,脏数据主要存在异常、缺失和冗余这三类。

3.1 异常数据的判断与处理

本文异常数据的剔除算法分为两个步骤,第一步是采用阈值法去掉比较明显的错误数据;第二步是采用交通机理法去掉在数据中隐藏的错误数据。阈值法要求数据取值在一定的区域范围之内,如果相应的区间内数据超出了这个区域,那么就表示相应的数据为错误数据,需要对其进行清洗。也就是说,根据采集到的数据的历史统计规律、设定相应的数据阈值,对待处理数据进行上下阈值比较,在这区间的为正常数据,不在此区间的为异常数据。通常会将交通流数据的特征参数联合起来进行综合判断。通过对数据的研究分析,发现所采集到的数据存在很多异常数据,如速度为零,流量却不为零;流量不为零,占有率却为零等。根据城市道路交通机理知识,交通流数据中的参数数据应该是同有同无,也就是说不可能三者中有某一个或几个为零,其余参数数据不为零的情况。这就是进行数据逻辑判断的准则,用以剔除错误的数据。

因此,异常数据的逻辑判断和处理准则为:

(1)当流量VOL大于2000辆/h时,流量为异常数据,剔除;

(2)当速度SPEED大于100km/h时,速度为异常数据,剔除;

(3)流量、速度、占有率、车头时距都为零时,剔除。

3.2 缺失数据的处理

数据缺失可能是由多种原因造成的,那么其表现出的形态也有多种,所以在进行缺失数据处理之前要遍历在一定时间内某路段的所有数据。在这过程中发现某时刻没有数据,则称这种现象为数据缺失。在补齐数据的过程中需遵循以下两条原则:首先要保证原始数据的完整,及对于原始数据最大限度不作修改和删除,以保证有足够充足的历史数据可作为修补数据的基础,并且此文档应单独完整存储,方便后续的检测和使用,缺失数据的处理在异常数据剔除之后,在异常数据处理后存储为剔除异常后的数据文档,缺失数据则基于此文档,修改过后另外保存。其次是对于缺失数据修补的方法和过程应用文档独立记载,这将有利于后续的检查工作并且为数据的取舍提供基础,也提高了数据处理的透明性。因为交通流缺失数据和已有的数据存在着一定的能够确定的关联关系。

3.3 冗余数据的简约

在正常的交通流数据应该是一条记录对应一条完整的检测信息,但是在现实中,由于设备布置、调试等原因,使采集到的数据集可能存在冗余问题。冗余的交通数据会增大交通流数据容量,掩盖关键信息,甚至可能会诱导错误的分析和预测。所以,预测分析前要简约冗余数据。简约方法主要有:如果冗余的多条数据相似则取平均值,若数据都相同则只取一条。

4 结语

对某市交通流数据清洗后进行流通统计如图2所示。

从图2中可以看出,某市整体交通流量从早上6点开始向上攀升,到早上8点到达最高峰,然后缓慢下降,持续到上午11点,这与人们出行的早高峰相吻合。晚上5点到达最高,然后缓慢下降,与晚高峰出行吻合。

参考文献

[1]马寿峰,贺国光,刘豹.智能交通系统中短时交通流预测系统的研究预测[J].2004,23(2): 28-34.

[2]魏强.基于固定检测器的区域交通状态判别方法研究[D].吉林:吉林大学.2011.

数据清洗范文第10篇

关键词:大数据 知识服务 知识库 数据清洗 非清洁数据 清洁度

中图分类号: G302;TP391 文献标识码: A 文章编号: 1003-6938(2013)05-0016-06

1 引言

随着以微博、社交网络等为代表的新型信息方式的不断涌现,人类社会的数据种类和规模正以前所未有的速度在不断地增加和累积,大数据时代正式到来[1]。在大数据环境下探讨知识服务,不再局限在传统的文献服务,而必须同步数据的爆发式增长与社会化趋势,将视角瞄准大量的碎片化信息、用户行为、用户关系,并将焦点汇聚在由此产生的实时数据、非结构化数据及机器数据。知识服务的内涵,将随着大数据的驱动而深刻发生变化,它将帮助一个组织更好地调用内部、外部以及公共信息,并进行数据分析,做出前瞻性的数据判断。

美通社最新的《大数据市场:2012至2018年全球形势、发展趋势、产业分析、规模、份额和预测》报告指出,2012年全球大数据市场产值为63亿美元,预计2018年该产值将达483亿。2012年,美国政府拨款2亿美元启动“大数据研究和发展倡议”计划。IBM、微软、Google等国外IT巨头早已嗅到了“大数据时代”的商机,这些国际巨头借助自己拥有领先技术和丰富资源,以及稳定的大客户群,实力雄厚,率先涉足。

我国互联网数据中心(IDC)对中国大数据技术和服务市场2012~2016年的预测与分析指出:该市场规模将会从2011年的7760万美元增长到2016年的6.17亿美元,未来5年的复合增长率达51.4%,市场规模增长近7倍。在国内,大数据正在引起越来越多的企业关注。不但阿里巴巴、腾讯等把大数据当成近期的重点项目。作为国内互联网产业的发源地和创新高地,中关村也在抢抓大数据发展机遇,着手布局大数据产业。

学术界、工业界甚至政府机构都已经开始密切关注大数据问题,并对其产生了浓厚的兴趣。大数据是新一代信息技术的集中反映,表现在数据从简单的处理对象转变为一种基础性资源,大数据的规模效应正在给数据存储、管理以及数据分析带来了极大的挑战,知识管理方式上的变革正在酝酿和发生。如何有效存储、管理、组织和更新大规模的数据,如何有效利用存储的数据进行推理获取知识并求解问题,这也是目前图书情报领域一个重要研究课题,正如Google的首席经济学家Hal Varian所说[2],数据是广泛可用的,所缺乏的是从中提取出知识的能力。由此,可以认为数据收集的根本目的是根据需求从数据中提取有用的知识,并将其应用到具体的领域之中。大数据环境下,更需要高效的知识提取手段,使得大数据源源不断提供有用的知识,而非知识被“淹没”在大数据中。在“数据海洋”中对大数据进行知识提取,最有可能的手段是让大数据“缩水”,祛除一些噪声数据,对剩下的那些蕴含所需知识的数据进行提取,这也是进行知识管理的前提,更是知识服务的基础。

而在大数据环境下,要做好数据分析并以此做出数据判断的基础工作是数据清洗。大数据的维度包含了数量、多样性、速度、精确性等,在如此大维度中不可避免的存在着粗糙的、不合时宜的数据,如何将这些非清洁数据有效转化成高质量的干净数据,涉及到知识组织中的数据清理。数据的质量体现出数据的价值,更是知识服务水平的保障。数据清洗的最终目的就是提高数据的质量。

2 相关研究综述

系统科学理论对知识组织研究过程中一些问题和现象进行了科学的阐释和有效地引导。借助控制论(Control Theory)可为实现知识服务提供理论支持,具体而言过程化的控制思想对数据加工处理环节的数据质量控制、加工处理环节的时间、进度等控制,为知识组织工程的时间、进度和质量的控制提供了有效地理论支撑。在系统科学理论的指导下,就可从控制论角度出发采用数据清洗手段解决在知识组织过程中数据的质量控制、数据和知识生产流程控制等难题,并能基于控制论基本原理解决知识组织过程中大量复杂问题。

在数据清洗问题上,王曰芬教授[3]领衔的研究团队就从问题产生的背景和国内外研究现状进行了系统的综述研究,并给出数据清洗的定义和对象且说明了数据清洗的基本原理、模型,以及分析相关算法和工具,进一步给出了数据清洗评估方法。他们的成果对今后数据清洗的研究奠定了基础。曹建军等[4]认为数据清洗是数据质量研究的起点,从数据质量的角度明确数据清洗的作用,并提出了数据清洗的一般系统框架,该框架具备了柔性、可扩展性、交互性好、松耦合的特点。叶焕倬等[5]研究了相似重复数据清理方法,重点对检测和清除算法按照算法类型及相关改进思路进行分类综述,值得注意的是他们的视野已关注到将知识和语义的概念引入到数据清理框架中。王宏志等[6]的研究在一定程度上容忍非清洁数据的存在,侧重研究包含非清洁数据的数据库管理技术,提出了非清洁数据的表示方法,支持非清洁数据的数据操作,这样的非清洁数据模型包括一个以关系操作为核心的操作代数,可以有效地支持非清洁数据的各种该应用。而介于清洁数据与非清洁数据中间的不确定数据,周傲英教授等[7]注意到数据的不确定性普遍存在并且表现形式多种多样,提出了针对不确定数据的数据模型运用排序、剪枝等启发式技术设计新型算法,进一步综述了数据模型、数据预处理与集成、存储与索引、查询处理等方面的工作。张岩等[8]的研究中,给出了衡量数据质量的方法,并且可根据用户对结果质量的需求给出达到一定质量的查询结果。叶鸥等[9]的研究瞄准中文数据清洗问题产生的背景、国内外研究现状与研究热点,突出了中文数据清洗基本原理、模型及算法并着重阐明了中文数据清洗的方法,也总结中文数据清洗研究的不足,并对中文数据清洗的研究及应用进行了展望。

已有的研究成果,对本文展开数据清洗的研究在模型、技术、方法奠定了基础,控制论又从知识服务方向提供了从事数据清洗的理论指导。现阶段,针对数据清洗的研究不多,从知识服务的角度探究数据清洗的研究成果更少。而大数据引来了国内外越来越多的关注,逐渐发展成国民经济中一个重要产业,标志性的特征就是:①数据种类和规模正以前所未有的速度在不断地增加和累积;②数据分析的深度需求与知识服务广泛整合的鸿沟在拉大。在如此大数据的环境下,以知识服务为目的,深入研究数据清洗,将面临的问题:一方面是在知识组织过程中很多非清洁的数据是很难被彻底清洗干净;另一方面,对非清洁数据的清洗可能造成部分知识的丢失或失真;再一方面,知识库中信息更新频繁,要同步执行非清洁数据的辨识与清洗将极大影响知识库系统的效率,以致知识组织的过程低效。

针对面临的问题,本文从容忍非清洁数据存在的研究视角试图解决从包含非清洁数据的知识库中获取满足清洁度要求的查询结果的问题,也就是要给出非清洁数据的清洁度的描述。而非清洁来自两个方面,一方面是数据本身的非清洁,表现特征是数据的错误、不准确、不完整;另一方面是数据间的非清洁,表现特征是数据的重复、冗余、不一致。针对非清洁的两个方面,本文的研究工作将从元组上添加清洁度来描述数据清洁度,以此实现非清洁数据的清洁度的描述。

3 大数据对数据清洗的基础性需求

大数据不仅数量大,而且是异构和多媒体的。在大数据环境下探讨知识服务的解决方案、实现途径和方法,以及实现知识服务涉及到的技术问题。首先在宏观层面明确大数据对实现知识服务的要求,其次在技术实现层面找到支持数据处理、信息分析和知识服务涉及的基础性突破,即数据清洗。

3.1 大数据对知识服务的要求

大数据的价值在于提炼其中隐藏在数据中的规律和有关知识,它对知识服务的要求集中体现在两个方面:首先是大数据环境下的数据整合与规划。大数据不仅仅是容量大、内容丰富,而且其结构是异构的,数据产生的速度也是飞速的,数据中蕴含的知识也是无法衡量的。数据的繁杂、良莠不齐,使数据的利用效率受到影响。通过整合与规划提高数据的利用效率、提升数据的使用价值;其次数据的知识关联与组织。孤立的数据价值低,也只能完成传统的信息服务。针对大数据的知识服务必须将数据进行关联,使之能够为解决问题直接提供知识。通过分析知识组织的关联机制,构建以知识服务为目标的知识地图,确保从传统的信息服务能够上升到知识服务层面。

3.2 知识服务对数据清洗的需求

在知识组织过程中,知识库“吸收”数据且“供给”知识,最终目的是为知识服务提供满足应用所要求的合适的查询结果,数据是知识的基础,数据质量决定了知识的价值,而数据质量问题是由非清洁数据造成的。为此,知识服务若要实现高端的服务水平,基础在于知识组织,瓶颈在于数据清洗。数据清洗的目的是检测数据本身的非清洁和数据间的非清洁,剔除或者改正它们,以提高数据的质量。知识服务不仅需要分析非清洁数据的各种类型不一致、不精确、错误、冗余、过时等的解决方案,更需要追溯非清洁数据的形成源头,如:①数据本身来源不清洁导致的非清洁数据,例如数据采集和录入的精确;②数据模式的不清洁和信息集成中模式不匹配导致的非清洁数据;③数据的查询请求本身是不清洁的,导致获取了非清洁的查询结果。最终结合不同来源与不同类型,反馈修正解决方案使之能配合知识表示效用,以及在提高知识服务水平的同时,保障知识服务的效率。

4 数据清洗的基本框架模型

以一个非清洁数据的片段为例,如表1所示,可以很容易判断:①不完整的数据有:(ID:3、字段:City)“BJ”;②错误的数据有:(ID:6、字段:Name)“Mal-Mart”;③冗余的数据:(ID:1、3、6)表示同一个实体。

对非清洁数据,数据清洗的框架模型分5个部分逐步进行,整个框架如图1所示。

4.1 准备

包括需求分析、大数据类别分析、任务定义、小类别方法定义、基本配置,以及基于以上工作获得数据清洗方案等。通过需求分析明确知识库系统的数据清洗需求,大数据类别分析将大数据归类以便同类数据进行分析,任务定义要明确具体的数据清洗任务目标,小类别方法定义确定某类非清洁数据合适的数据清洗方法,基本配置完成数据接口等的配置,要形成完整的数据清洗方案,并整理归档。上述案例,可以看出表1描述的是超市的相关信息。

4.2 检测

对数据本身及数据间的预处理检测包括相似重复记录、不完整记录、逻辑错误、异常数据等,并且对检测结果进行统计,全面获得的数据质量信息,并将相关信息整理归档。上述案例(表1)检测出存在有:①不完整的数据、②错误的数据、③冗余的数据。

4.3 定位

对检测结果的归档信息进行数据质量进行评估,获得非清洁数据的定位并进行数据追踪分析,分析非清洁数据及由此可能的知识表示的影响,分析产生非清洁的根本原因;进而确定数据质量问题性质及位置,给出非清洁的修正方案,并将相关信息归档。根据定位分析情况,可能需要返回“检测”阶段,进一步定位需要修正数据的位置。上例中非清洁数据片段的位置:(ID:3、字段:City)、(ID:6、字段:Name)、(ID:1、3、6)。

4.4 修正

在定位分析的基础上,对检测出的非清洁数据进行修正,包括非清洁数据标记、不可用数据删除、重复记录合并、缺失数据估计与填充等,并对数据修正过程进行存储管理。上例中在定位后,修正上述三类数据,经过修正后,得到如表2所示数据片断。

4.5 验证

对修正后的数据与任务定义的符合性进行比对验证,如果结果与任务目标不符合,则做进一步定位分析与修正,甚至返回“准备”中调整相应准备工作。表2反映出经过一轮修正后的数据片断,与表1相比部分不完整的数据、错误的数据、冗余的数据得到了清洗,但清洗过后的数据显然还不完美,依然有明显不一致的地方。

5 基本框架模型的局限

实际大数据应用中,前面提出的基本模型具有局限性:首先,大数据通常是异构且碎片化的,多数情况下这些类型的非清洁数据是难以被彻底清洗干净的;其次,对非清洁数据的清洗可能会造成蕴含知识的损失,以致知识的失真;最后,对于知识库频繁更新,同步执行非清洁数据的辨识和清洗将极大地减低系统的效率。

再如上例中,从表1到表2,在一定程度是进行了数据清洗,但深入观察可以发现(ID:6、字段:Name)“Walmart”虽然不存在拼写错误,但表示方式与其他的“Wal-Mart”并不一致,还有(字段:Phn)的表示也不一致,这些不一致的地方阅读者容易理解,而机器很难“理解”。也就是,经过一轮的数据清洗,出现了知识内涵一致的元组(“Walmart”与“Wal-Mart”),却存在表示字符上的差异,这是否意味着需要进一步进行数据清洗?如果由机器进行更细腻的数据清洗,必然将出现一部分信息的丢失或失真,并且带来机器计算上的负担。因此,数据清洗是必要的,但清洗过后,依然存在非清洁数据也是必然的。

从上述分析可以看出,非清洁数据的辨识与清洗很难保证彻底消除非清洁数据,特别大数据的多维度性,给清洗带来了困难,且随着清洗的细腻程度逐步提高,知识库系统的运行性能将逐步降低伴随将逐步丢失数据中蕴藏的信息,不能快速有效地解决非清洁数据带来的问题。为此,大数据的存在,需要在一定程度上容忍非清洁数据的存在。这样,研究管理包含非清洁数据的知识库系统成为了重要的问题,其核心在于如何从包含非清洁数据的知识库中得到满足应用所要求清洁度的查询结果。

6 非清洁数据的清洁度的机制

6.1 清洁度获取

清洁度本质上反应的是数据质量。目前,清洁度定义可以用两种方法描述:一种是概率的方法,即将元组清洁度定义为该元组准确的概率;另一种是相对误差的方法,即定义元组对于真实值的相对误差。其中应用最为广泛的是概率的方法。如表1中,可以判断元组1、3和6表示同一个实体,因此,可以合并这3条元组,根据这个数据片段只能判断“Name”取值更可能为“Wal-Mart”,但机器无法完全排除“Mal-Mart”,为了描述每个可能取值的质量,赋予每个值一个概率值,表示该值的清洁度。如“Wal-Mart”在同一个实体3条元组出现了2次,则清洁度为2/3,从而得出该条实体各元组的清洁度,如表3所示。

在实际应用中,元组的清洁度可以通过人工或者自动的方法获取,主要来源包括:

(1)人工添加。最直接的方法是由用户根据领域知识和数据的来源添加数据的清洁度。这种方法的问题在于,当数据量很大时,需要大量的人力。

(2)属性清洁度组合。由于一些属性的清洁度是可以预知的,比如在科学统计数据库中描述某仪器采回数据的关系,模式为(Time,Value),其中:Value 列来源于数据采集设备,该设备的相对误差是知道的;而 Time列是在采样时由系统添加,可以看成清洁的列。因此,该关系中元组的清洁度定义为 Value 列的清洁度。

(3)模式转换。在信息集成中,在数据之间进行模式转换会产生清洁度的损失,在一些信息集成方法中会给出模式转换时数据的损失,经过归一化以后,该损失可以用作表示数据清洁度。

(4)信息提取。信息提取的过程中,一些技术会根据原始数据的特点或者机器学习的方法求得某数据属于某元组概率或者准确率,这个值可用作数据清洁度的描述。

(5)实体识别。当前,有很多实体识别的方法将数据集合划分成为实体,通过描述同一实体的不同元组之间的不一致性来描述实体的清洁度。

以上多种方法在一些应用中是可以结合使用的,根据本模型的特点,在结合使用时,元组的清洁度应为多来源清洁度的乘积。一方面使得元组的清洁度满足取值在[0,1]之间;另一方面,这样的方法体现了多种清洁度的复合。例如信息提取系统中,首先进行信息提取,然后进行实体识别,则最终结果的清洁度可以定义为信息提取步骤的清洁度与实体识别步骤清洁度的乘积。

6.2 操作的实现策略

通过在每个关系中添加描述清洁度的列(如表3),现有的关系数据库系统可以对本模型所描述的数据进行管理。然而,现有关系数据库中的管理机制不足以支持所有的操作。考虑到随着操作的进行数据清洁度是递减的,因此根据查询的需求,在操作执行的过程中某些环节需要过滤掉清洁度不可能满足查询要求的中间结果,这样可以减小中间结果的数据量,从而加速查询的处理。例如,对于如果查询要求结果中每条元组的清洁度在 0.5 以上,则在查询处理的过程中可以过滤掉清洁度小于 0.5 的中间结果,因为由这些中间结果生成最终结果的清洁度一定小于 0.5。

6.3 基于阀值的相似连接算法

相似连接是在两个元组集合中选择出满足相似性下界(阀值)的元组对。目前已经有很多衡量相似性的方法:编辑距离、Hamming距离、杰卡德相似度以及余弦相似度等。本小节考虑的是基于编辑距离的相似连接。对于给定的两个字符串r和s,r和s的编辑距离ed(r,s)是指从r变为s所需要的最少的编辑操作(包括:删除、插入和替换)次数。如表4中,ed(Wal-Mart,Mal-Mart)=1,ed(80103389,010-80103389)=4。在实体关系数据库中,属性值可能含有多个取值,本书对相似连接算法给出如下定义。

定义1:相似连接。给定两个属性值集合R和S及编辑距离阀值k,R和S的相似连接是指选出所有的属性值组合(r,s),其中r∈R,s∈S,而且r和s满足至少存在一组可能取值r1和s2。它们的编辑距离ed(r1,s2)≤k。

以表4为例,给出两个集合R和S。若编辑距离阀值k设为3,则对应相似连接结果仅为(r1,s1)与(r2,s2),因为ed(Wal-Mart,Mal-Mart)=1≤3,ed(Jerry Strauss,Jerry Strauss)=0≤3。其余相似连接中(r2,s1)、(r1,s2)显然其编辑距离均超过阀值3,表5给出了连接结果。

其中,第二条元组(ID=2),ed(Jerry Smith,Jerry Strauss)>3、ed(Jerry Smith,Jeff Strauss)>3,故第二条元组对应清洁度为1/5*2/5+1/5*3/5=0.2。

在实际关系数据库中,所有可能值都有对应的清洁度,所以,所有相似连接结果也都会有一个清洁度,表示该结果的质量,如表5结果所示,而在实际应用中,我们只对清洁度比较高的结果感兴趣,对于那些较低清洁度的结果可以忽略。

定义2:基于阀值的相似连接。给定两个属性值集合R和S及编辑距离阀值k和清洁度阀值α, R和S的阀值相似连接是指选出所有的属性值组合(r,s),其中r∈R,s∈S,而且r和s连接结果的清洁度不低于α。

上例中,如果清洁度阀值α设为0.3,表5中两个集合R和S的阀值的相似连接结果不再是(r1,s1)与(r2,s2),因为第二条元组对应清洁度为1/5*2/5+1/5*3/5=0.2,该结果不满足清洁度阀值要求。

基于阀值的相似连接算法的特点是当编辑距离阀值k较大且清洁度阀值较小时,连接结果大小将接近于n2(n是连接集合的大小),反之连接结果集比较大。

6.4 清洁度的机制的研究不足

目前关于非清洁数据的清洁度机制的研究成果非常少,汇聚在图书情报领域的成果更少。而事实上,知识来源于数据的提炼,大数据大维度与碎片化中蕴含了丰富的知识内涵。上一节的探讨,只描述了清洁度机制的框架,研究也还停留在数据本身的处理,而清洁度机制是一项复杂的研究,还有深入优化的研究空间。譬如,将清洁度机制与知识的语义距离结合,如ed(Wal-Mart,Mal-Mart)=1,ed(80103389,010-80103389)=4,虽然存在编辑距离,其实它们都是同一个知识点,进一步的研究将涉及到是先进行知识的语义距离计算还是先进行清洁度计算,或者两者并行计算,这将是图书情报领域又一个难点。

7 结语

大数据时代的到来给知识服务带来了变革,迫使其将碎片化信息、社会化的信息提炼成描述用户行为、用户关系,并能解决问题的知识。为此,本文从大数据的研究背景下提出了对知识服务的要求,并面向知识服务,数据清洗的过程又是大数据环境下的瓶颈。给出了数据清洗的基本框架模型及其局限性,针对大数据的多维度性,在元组上增加了清洁度的描述,基于此研究了应对大数据环境下的非清洁数据的清洁度机制。

通过研究也发现了不足,下一步针对大数据的数据清洗将从知识的概念层次性入手,能体现知识之间的语义交叉这样更适用于大数据的大维度,根据知识的概念层次,通过消除知识的重复应用,建立原子知识序列,优化了用户的请求,减少了对知识库扫描的次数,从而提高了数据清洗效率。

参考文献:

[1]孟小峰,慈祥.大数据管理:概念、技术与挑战[J].计算机研究与发展,2013,50(1):146-169.

[2]The Economist.Data,data,everywhere-A special report on managing information[EB/OL].[2013-04-26].http:///node/15557443.

[3]王曰芬,章成志.数据清洗研究综述[J].现代图书情报技术,2007,(12):50-56.

[4]曹建军,刁兴春,陈爽.数据清洗及其一般性系统框架[J].计算机科学,2012,39(11):207-211.

[5]叶焕倬,吴迪.相似重复记录清理方法研究综述[J].现代图书情报技术,2010,(9):56-66.

[6]王宏志,李建中,高宏.一种非清洁数据库的数据模型[J].软件学报,2012,23(3):539-549.

[7]周傲英,金澈清,王国仁等.不确定性数据管理技术研究综述[J].计算机学报,2009,32(1):1-16.

[8]张岩,杨龙,王宏志.劣质数据库上阈值相似连接结果大小估计[J].计算机学报,2012,35(10):2159-2168.

[9]叶鸥,张璟,李军怀.中文数据清洗研究综述[J].计算机工程与应用,2012,48(14):121-129.

上一篇:数据中心范文 下一篇:数据库索引范文

友情链接