导读:大数据环境呈现出“4V+1C”的特点:数据量巨大(Volume)、数据类型繁多(Variety)、价值密度低(Value)、处理速度快(Velocity)和具有较强的复杂性(Complexity),原始大数据信息中混杂着许多不完整、错误和重复的“不清洁”数据,导致大数据存在着不一致、不完整性、低价值密度、不可控和不可用的特性。面对如此庞大的数据量,人们希望从海量数据中挖掘出有价值的信息或知识,为决策者提供参考。由于数据录入错误、不同表示方法的数据源合并或迁移等原因,不可避免的使系统存在冗余数据、缺失数据、不确定数据和不一致数据等诸多情况,这样的数据称为“脏数据”,严重影响了数据利用的效率和决策质量。因此,为使系统中的数据更加准确、一致,并能够支持决策,数据清洗变得尤为重要,数据清洗的任务就是过滤或修改那些不符合要求的数据,输出符合系统要求的清洁数据。
▌数据清洗定义
产生数据质量问题的原因很多,例如:缩写的滥用会造成数据的混乱;相似重复的数据记录会增加数据库的负荷,降低数据处理的效率;人为的失误或系统的故障会造成缺失数据、不完整数据或异常数据等,这些原因都会导致“脏数据”的产生。数据清洗是将数据库精简以除去重复记录,并使剩余部分转换成符合标准的过程;狭义上的数据清洗特指在构建数据仓库和实现数据挖掘前对数据源进行处理,使数据实现准确性(accuracy)、完整性(compliteness)、一致性(consistency)、适时性(timeliness)、有效性(validity)以适应后续操作的过程。从提高数据质量的角度来说,凡是有助于提高数据质量的数据处理过程,都可以认为是数据清洗。数据清洗是对数据进行处理以保证数据具有较好质量的过程,即得到干净数据的过程。
对数据清洗定义的理解需要注意以下问题:
(1)数据清洗洗掉的是“数据错误”而不是“错误数据”,目的是要解决“脏数据”的问题,即不是将“脏数据”洗掉,而是将“脏数据”洗干净;
(2)数据清洗主要解决的是实例层数据质量问题,对一个给定的数据集,实例层数据质量问题是有限的、可检测的和可隔离的;
(3)数据清洗不能完全解决所有的数据质量问题,即通过数据清洗提高数据质量的程度是有限度的,如对缺失值的估计有不确定性。因此,对数据清洗的正确理解应该是“在尽可能不破坏有用信息的前提下,尽可能多地去除数据错误”,数据清洗可能损失有用信息,也可能产生新的数据质量问题。
国外对西文数据清洗的研究比较成熟,对中文数据的研究比较少;国内对中文数据清洗的研究主要集中在对算法的改进,原创性算法还比较少,取得的成果也不多。因此,对于中文数据清洗的研究还存在很大的发展空间,具有很好的应用前景和理论价值。无论是对西文数据清洗的研究还是对中文数据清洗的研究都存在着很多不足之处,主要表现在以下几个方面:
(1)数据清理研究主要集中在西文数据上,中文数据清理与西文数据清理有较大的不同,中文数据清理还没有引起重视;
(2)现今对于中文数据清洗的研究主要针对的是实例层的数据,比如在数值型、字符串型字段中的研究,而对于模式层的数据清洗研究比较少;
(3)对重复数据的识别效率与识别精度问题的解决并不令人满意,特别是在记录数据非常多时,耗时太多;
(4)以前数据清理主要集中在结构化的数据上,而现在清洗的对象主要是非结构化数据或半结构化的数据;
(5)数据清洗工具或系统都提供了描述性语言,但基本上都是经过某种已有语言根据自己需要经过扩展实现的,不能很好地满足数据清理中大致匹配的需要,不具有互操作性,需要加强数据清洗工具之间的互操作性研究;
(6)现今的数据清洗大多数是面向特定领域。
▌数据清洗的基本原理
数据清洗原理是利用数据挖掘相关技术,按照设计好的清理规则或算法将未经清洗的数据,即脏数据,转化为满足数据挖掘所需要的数据,如图1所示。数据清洗的一般过程是:对收集到的信息进行数据分析得到“脏数据”;定义数据清洗规则和清洗算法,对数据进行手工清洗或自动清洗,直到处理后的数据满足数据清洗的要求。手工清洗的特点是速度慢,准确度高,一般适用于小规模的数据清洗,在较大规模的数据处理中,手工清洗的速度和准确性会明显下降,通常采用自动清洗方式。自动清洗的优点是清洗的完全自动化,但是需要根据特定的数据清洗算法和清洗方案,编写数据清洗程序,使其自动执行清洗过程。缺点是实现过程难度较大,后期维护困难。在大数据环境下,由于数据量的巨大,数据清洗通常采用自动清洗的方式来完成。
图1. 数据清洗原理
▌大数据对数据清洗的基础性需求
大数据不仅数量大,而且是异构和多媒体的。在大数据环境下探讨知识服务的解决方案、实现途径和方法,以及实现知识服务涉及到的技术问题。首先在宏观层面明确大数据对实现知识服务的要求,其次在技术实现层面找到支持数据处理、信息分析和知识服务涉及的基础性突破,即数据清洗。
大数据的价值在于提炼其中隐藏在数据中的规律和有关知识,它对知识服务的要求集中体现在两个方面:首先是大数据环境下的数据整合与规划。大数据不仅仅是容量大、内容丰富,而且其结构是异构的,数据产生的速度也是飞速的,数据中蕴含的知识也是无法衡量的。数据的繁杂、良莠不齐,使数据的利用效率受到影响。通过整合与规划提高数据的利用效率、提升数据的使用价值;其次数据的知识关联与组织。孤立的数据价值低,也只能完成传统的信息服务。针对大数据的知识服务必须将数据进行关联,使之能够为解决问题直接提供知识。通过分析知识组织的关联机制,构建以知识服务为目标的知识地图,确保从传统的信息服务能够上升到知识服务层面。
在知识组织过程中,知识库“吸收”数据且“供给”知识,最终目的是为知识服务提供满足应用所要求的合适的查询结果,数据是知识的基础,数据质量决定了知识的价值,而数据质量问题是由非清洁数据造成的。为此,知识服务若要实现高端的服务水平,基础在于知识组织,瓶颈在于数据清洗。数据清洗的目的是检测数据本身的非清洁和数据间的非清洁,剔除或者改正它们,以提高数据的质量。知识服务不仅需要分析非清洁数据的各种类型不一致、不精确、错误、冗余、过时等的解决方案,更需要追溯非清洁数据的形成源头,如:①数据本身来源不清洁导致的非清洁数据,例如数据采集和录入的精确;②数据模式的不清洁和信息集成中模式不匹配导致的非清洁数据;③数据的查询请求本身是不清洁的,导致获取了非清洁的查询结果。最终结合不同来源与不同类型,反馈修正解决方案使之能配合知识表示效用,以及在提高知识服务水平的同时,保障知识服务的效率。
▌数据清洗系统框架
对非清洁数据,数据清洗的框架模型分5个部分逐步进行,整个框架如图2所示。
1 ▏准备
包括需求分析、大数据类别分析、任务定义、小类别方法定义、基本配置,以及基于以上工作获得数据清洗方案等。通过需求分析明确知识库系统的数据清洗需求,大数据类别分析将大数据归类以便同类数据进行分析,任务定义要明确具体的数据清洗任务目标,小类别方法定义确定某类非清洁数据合适的数据清洗方法,基本配置完成数据接口等的配置,要形成完整的数据清洗方案,并整理归档。
2 ▏检测
对数据本身及数据间的预处理检测包括相似重复记录、不完整记录、逻辑错误、异常数据等,并且对检测结果进行统计,全面获得的数据质量信息,并将相关信息整理归档。
3 ▏定位
对检测结果的归档信息进行数据质量进行评估,获得非清洁数据的定位并进行数据追踪分析,分析非清洁数据及由此可能的知识表示的影响,分析产生非清洁的根本原因;进而确定数据质量问题性质及位置,给出非清洁的修正方案,并将相关信息归档。根据定位分析情况,可能需要返回“检测”阶段,进一步定位需要修正数据的位置。
4 ▏修正
在定位分析的基础上,对检测出的非清洁数据进行修正,包括非清洁数据标记、不可用数据删除、重复记录合并、缺失数据估计与填充等,并对数据修正过程进行存储管理。
5 ▏验证
对修正后的数据与任务定义的符合性进行比对验证,如果结果与任务目标不符合,则做进一步定位分析与修正,甚至返回“准备”中调整相应准备工作。
图2.数据清洗系统框架
▌结语
大数据时代的到来给知识服务带来了变革,迫使其将碎片化信息、社会化的信息提炼成描述用户行为、用户关系,并能解决问题的知识。为此,本文从大数据的研究背景下提出了对知识服务的要求,并面向知识服务,数据清洗的过程又是大数据环境下的瓶颈。
大数据环境下数据具有数据量大、价值密度低等的特点,由于拼写错误、数据合并等原因导致信息中包含一些缺失数据、异常数据和不一致数据,这样的数据称为“脏数据”,严重影响了数据利用的效率和决策质量,而数据清洗技术则可以提高数据质量,使系统中的数据更加准确、一致,并能够支持决策。
分享&交流
领取专属 10元无门槛券
私享最新 技术干货