一种数据处理方法与流程

文档序号:12305456阅读:230来源:国知局
一种数据处理方法与流程

本发明涉及数据处理领域,更具体的,涉及一种数据清洗处理方法。



背景技术:

随着数据挖掘领域的研究日益成熟,人们对数据质量的要求也越来越高。但是因为数据仓库中存在着很多冗余的或缺失的数据,以及存在不一致数据或不确定数据,导致数据质量下降,我们把这些影响数据质量的数据称为“脏数据”。根据“垃圾进,垃圾出”的原理,脏数据将会影响数据挖掘的质量,使得决策分析系统得到错误的分析结果,最终误导决策,影响决策者预测和决策的准确性。除此之外,脏数据还会导致昂贵的操作费用和漫长的响应时间。因此我们必须对脏数据进行清洗。大量的研究发现,数据清洗在决策分析和数据挖掘系统中所占的工作量几乎是整个工作量的到。

在基于历史数据的数据仓库的基础上为企业的发展进行指导和预测时,数据的质量问题变得非常关键。根据“垃圾进,垃圾出”原理,数据仓库中的数据经常会存在数据缺失、数据噪声、数据不一致和数据冗余等质量问题。这些存在质量问题的污点数据往往会导致漫长的响应时间和昂贵的操作费用,并且会影响到从数据中导出规则的导出准确性和从数据中挖掘隐藏信息的挖掘模式的正确性,进而使决策支持系统产生误导决策。

企业对存在质量问题的污点数据处理的需求与日俱增,对数据清洗的要求也越来越高。在传统的污点数据清洗工作中,主要还是依赖人工对不同数据库中的数据进行人工处理。这样的数据清洗方式不仅会耗费大量的时间,而且由于不可控因素太多,数据清洗的错误率也会增加,导致数据质量的提高程度不高、可靠性不强。

在大数据领域,数据的来源往往是不确定的,而针对一个数据库的系统而言,其获取的数据可能是格式多样的,而且这些数据来源很可能也是“脏数据”,对于整个的系统并没有用户,反而会带来数据库的存储压力和处理器的处理压力。所以能设计一种针对数据来源进行格式统一,并清洗垃圾数据的方法是亟不可待的。



技术实现要素:

本发明旨在至少解决现有技术中存在的技术问题之一。

为此,本发明的目的在于,通过设计一种数据处理方法,该方法利用关键字段字符的区位码对数据集进行排序及分组,提高了算法的运行效率和检测精度。并且通过特征字段优选方法选出分组中具有代表性的字段,删除无关字段,减少了相似重复记录检测时的字段匹配次数,进而减少了记录匹配的运行时间。能够有效地解决大数据量的相似重复记录检测问题。

为实现上述目的,本发明提供一种数据处理方法,包括如下步骤:

步骤1,对所要清洗的数据源进行数据分析,定义出数据清洗规则,并选择预设的清洗算法;

步骤2,根据规则库中定义好的或用户自定义的清洗规则对数据进行预处理,将数据转换成统一的预设的数据格式;

步骤3,根据预设的数据清理算法对数据中的相似重复记录、异常数据和不完整数据进行检测;

步骤4,根据清理算法和规则库中定义的清理规则对所述相似重复记录、异常数据和不完整数据进行数据清理;

步骤5,将清理后的数据反馈至用户端,获取用户端的反馈信息,根据所述反馈信息确定是否重新进行数据清洗步骤。

具体的,所述相似重复记录的检测步骤如下:

步骤1.1,选取数据的关键字段,计算关键字段的字符区位码,利用所述字符区位码对数据进行排序,对所述排序后的数据进行分组,形成小数据集;

步骤1.2,对所述小数据集进行特征优选计算,计算出代表性的字段,然后删除其他无关字段;

步骤1.3,利用字段加权匹配算法对所述小数据集检测重复记录,并对重复记录进行标记;

步骤1.4,将所述检测出的重复记录按照预设的规则输出。

具体的,所述对所述排序后的数据进行分组具体步骤如下:

步骤2.1,将记录中的关键字段或关键字段的某些位选取出来,并将其区位码计算出来,如果所选出的是关键字段的某一位,则计算出该字符所对应的区位码,如果所选出的的是关键字段的某几位,则计算出这几位所对应的区位码的平均值,如果选出的是整个的关键字段,则将该字段所有字符的区位码计算出来,并计算出这些字符的平均值;

步骤2.2,利用所选出字符的区位码排序整个记录集,使得可能的重复记录排在相邻区域;

对记录的字符区位码进行比较,如果记录的区位码是相等的,或记录的区位码的平均值相差不大,则将记录聚集到一个数据集中,从而逐渐把大数据集分割成很多个不相交的小数据集;

步骤2.3,分组后如果还有比较大的数据集,则在该数据集中选取另外的关键字段继续对该数据集进行分组;

步骤2.4,重复上一步,直至得到符合需求的分组为止。

具体的,所述步骤1.2具体为:

步骤3.1,计算每个分组中个记录各维字段的均值,计算出每维字段的方差,其中方差越大,则该字段越不具有代表性,具体计算公式如下:

其中,表示第k维字段的均值,表示记录xik的字段值;

步骤3.2,将所述方差与预设的阈值进行比较,将方差大于阈值的字段的序列号组成一个与数据记录无关的字段的集合,将其删除。

具体的,所述方差的计算公式如下:

其中为每维字段的方差。

优选的,所述阈值的大小为0.9。

通过本发明的技术方案,可知本发明该方法利用关键字段字符的区位码对数据集进行排序及分组,提高了算法的运行效率和检测精度。并且通过特征字段优选方法选出分组中具有代表性的字段,删除无关字段,减少了相似重复记录检测时的字段匹配次数,进而减少了记录匹配的运行时间。能够有效地解决大数据量的相似重复记录检测问题。

附图说明

图1示出了本发明的一种数据处理方法的流程图;

图2示出了本发明一种数据处理方法的实施例。

具体实施方式

为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式对本发明进行进一步的详细描述。需要说明的是,在不冲突的情况下,本申请的实施例及实施例中的特征可以相互组合。

在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的方式来实施,因此,本发明的保护范围并不受下面公开的具体实施例的限制。

本发明设计的清洗系统具有算法库和规则库,这些算法库和规则库是开放的,里面含有大量丰富的清洗算法和清洗规则,同时包含了质量评估模块,使用评估库中设计好的优良评估方法,由用户根据需求选用恰当的清洗算法和清洗规则,使得在不同应用中达到最佳的清洗效果。该框架有数据分析模块、数据清洗前的预处理模块、数据检测模块、数据清理模块及质量评估模块五个模块。

用户不仅可以使用现成的系统库中提供的检测算法、清洗算法、清洗规则以及质量评估方法对脏数据进行清洗和对清洗的效果进行质量评估,还可以根据实际的需要编写适应的算法或自定义的新规则以及新的评估方法,并将这些算法或规则加入到相应的算法库或规则库中将清洗结果通过质量评估模块反馈给用户,用户根据清洗效果及实际的需要决定是否进行重新清洗,如果需要重新清洗,则重新选择适当的算法和规则进行清洗在清洗过程中,由于系统异常或数据多样性、复杂性等问题导致系统无法自动完成整个清洗工作,这时就需要用户参与处理,这个过程中用户是通过人机交互界面参与其中的。

图1示出了本发明的一种数据处理方法的流程图。

如图1所示,本发明提供一种数据处理方法,包括如下步骤:

步骤1,对所要清洗的数据源进行数据分析,定义出数据清洗规则,并选择预设的清洗算法;

步骤2,根据规则库中定义好的或用户自定义的清洗规则对数据进行预处理,将数据转换成统一的预设的数据格式;

步骤3,根据预设的数据清理算法对数据中的相似重复记录、异常数据和不完整数据进行检测;

步骤4,根据清理算法和规则库中定义的清理规则对所述相似重复记录、异常数据和不完整数据进行数据清理;

步骤5,将清理后的数据反馈至用户端,获取用户端的反馈信息,根据所述反馈信息确定是否重新进行数据清洗步骤。

具体的,所述相似重复记录的检测步骤如下:

步骤1.1,选取数据的关键字段,计算关键字段的字符区位码,利用所述字符区位码对数据进行排序,对所述排序后的数据进行分组,形成小数据集;

步骤1.2,对所述小数据集进行特征优选计算,计算出代表性的字段,然后删除其他无关字段;

步骤1.3,利用字段加权匹配算法对所述小数据集检测重复记录,并对重复记录进行标记;

步骤1.4,将所述检测出的重复记录按照预设的规则输出。

具体的,所述对所述排序后的数据进行分组具体步骤如下:

步骤2.1,将记录中的关键字段或关键字段的某些位选取出来,并将其区位码计算出来,如果所选出的是关键字段的某一位,则计算出该字符所对应的区位码,如果所选出的的是关键字段的某几位,则计算出这几位所对应的区位码的平均值,如果选出的是整个的关键字段,则将该字段所有字符的区位码计算出来,并计算出这些字符的平均值;

步骤2.2,利用所选出字符的区位码排序整个记录集,使得可能的重复记录排在相邻区域;

对记录的字符区位码进行比较,如果记录的区位码是相等的,或记录的区位码的平均值相差不大,则将记录聚集到一个数据集中,从而逐渐把大数据集分割成很多个不相交的小数据集;

步骤2.3,分组后如果还有比较大的数据集,则在该数据集中选取另外的关键字段继续对该数据集进行分组;

步骤2.4,重复上一步,直至得到符合需求的分组为止。

具体的,所述步骤1.2具体为:

步骤3.1,计算每个分组中个记录各维字段的均值,计算出每维字段的方差,其中方差越大,则该字段越不具有代表性,具体计算公式如下:

其中,表示第k维字段的均值,表示记录xik的字段值;

步骤3.2,将所述方差与预设的阈值进行比较,将方差大于阈值的字段的序列号组成一个与数据记录无关的字段的集合,将其删除。

具体的,所述方差的计算公式如下:

其中为每维字段的方差。

优选的,所述阈值的大小为0.9。

图2示出了本发明一种数据处理方法的实施例。

如图2所示,本实施例具体数据处理如下:

对所要清洗的数据源进行数据分析,定义出数据清洗规则,并选择合适的清洗算法根据规则库中定义好的或用户自定义的清洗规则对数据进行预处理,将数据格式规范化,数据表达方式统一化,使用统一的全称替换缩写以改善数据质量,为之后的数据清洗工作做准备根据实际情况的需要,调用算法库中相应的算法或根据实际情况调整算法或自定义算法对相似重复记录、异常数据和不完整数据进行检测利用算法库中提供的清理算法和规则库中定义好的清理规则对检测出来的不同类型的重复记录、异常记录和不完整数据进行清理,也可根据实际情况调整清理规则或自定义新的规则合并与清除相似重复记录,提取异常记录,填充不完整数据中的缺失值。对于程序无法处理的数据,就提交给用户,由用户进行人工处理利用评估库中的评估方法对数据清洗的效果进行评估,并将清洗效果的情况反馈给用户,用户根据反馈结果决定是否进行重新清洗。若达到用户要求,则把清洗后的干净数据输出到目标数据源中,若未达到用户的要求则重新选择合适的清洗规则重新清洗数据。

其中最主要的为相似重复记录检测清洗数据的过程。为了能够更好的适用于中文数据集的处理,算法首先采用关键字段字符的区位码对数据集进行初始排序,将相似重复记录大致排在邻近的区域。由于数据仓库的数据量比较大,为了提高对数据仓库中大数据量的数据检测的效率,首先要对大数据集进行处理,将大数据分割成多个小数据集,使得这些小数据集不相交。然后在分割后的小数据集中使用特征优选算法选出有代表性的记录字段,减少接下来所要匹配的字段的维数,把维数从原来的t维降到q维,将不具有代表性的字段即对相似重复记录检测无关的字段删除,从而减少相似重复记录检测时字段的匹配次数,进而减少记录检测时的时间开销,提高运行效率。为了进一步提高记录的检测精度,通过每个字段在记录中的重要程度不同,给每个字段赋予不同的权值,通过字段加权匹配进而对记录进行比较。为了有效地解决漏查的问题,还引入了多趟检测方法。具体的思想如下:

(1)选取能区别记录的关键字段或字段的某些位,计算出所选取关键字字符的区位码,利用其对数据集进行初始排序,使相似记录尽可能排在相邻区域。接着根据分组思想,选择关键字段将数据集逐步分割成多个小数据集,直到所得到的小数据集大小合适为止。

(2)对记录进行排序、分组之后,需要在小数据集中运用特征优选算法选出对记录具有代表性的字段,删除无关字段,减少字段维数,以便减少下一步的相似重复记录匹配时的字段比较次数,从而减少的时间开销,提高检测效率。

(3)在各个小数据集中利用字段加权匹配的方法来检测重复记录,并且把检测出来重复记录作上标记。

(4)在进行记录检测过程中,由于会存在重复记录漏配的情况,为了解决此问题,可以使用多趟检测技术,每趟选取不同的关键字段或字段的某些位,对大的数据集进行重新分组,然后再分组后的小数据集中进行检测,并且对检测出的重复记录作上重复标记。

(5)将检测出来的重复记录按一定的规则输出。

在上述的方法描述中,其中还应用了汉字区位码对其进行排序处理。选取关键字段,用关键字段字符的区位码对数据集进行排序,将相似记录尽量排在相邻位置,为接下来的重复记录检测奠定良好的基础。

对此,在计算机内部,英文字符采用的是编码标准,而中文字符是采用国标码进行编码的,一个汉字在计算机的国标码中以两个字节位二进制数存储,前一个字节前八位是区码,后一个字节后八位是位码。所有的国标汉字与符号组成一个的方阵。即汉字字符集是一个有个区,每个区有个位的方阵构成。此方阵中,每一行代表一个“区”,每一列代表一个“位”。每个汉字的区号和位号都是从到,将区码和位码简单地组合在一起就构成了汉字的“区位码”因此,在汉字的区位码中,用高两位表示区号,低两位表示位号。例如“王”的区位码为“4585”。

由于数据集中的数据量很大,所以在重复记录检测时,使用传统方法对整个数据集中的所有记录进行匹配比较需要进行大量的磁盘操作,会浪费大量的存储空间,从而使得算法的运行速度缓慢。为了弥补这一缺陷,本发明通过关键字段字符的区位码对数据集进行排序,这样能够减少常见的交换错误和同音字、近音字输入错误的情况。同时,利用分组思想,把大数据集分割成多个小数据集,然后在各个小数据集中进行重复记录的检测,这样做就可以减少磁盘操作的次数,而且也能节省运行时的存储空间,从而提高检测效率。分组的思想如下:

(1)将记录中的关键字段或关键字段的某些位选取出来,并将其区位码计算出来,如果所选出的是关键字段的某一位,则计算出该字符所对应的区位码,如果所选出的的是关键字段的某几位,则计算出这几位所对应的区位码的平均值,如果选出的是整个的关键字段,则将该字段所有字符的区位码计算出来,并计算出这些字符的平均值。

(2)利用所选出字符的区位码排序整个记录集,使得可能的重复记录排在相邻区域,以便进一步对数据集进行分组。

(3)对记录的字符区位码进行比较,如果记录的区位码是相等的,或记录的区位码的平均值相差不大,则将记录聚集到一个数据集中,从而逐渐把大数据集分割成很多个不相交的小数据集。

(4)分组后如果还有比较大的数据集,则在该数据集中选取另外的关键字段继续对该数据集进行分组。

(5)重复上一步,直至得到满意的分组为止。

本发明还针对数据清洗方法中进一步提出了进行特征优选的方法。由于记录的字段是用来描述记录特征的,但是不同字段由于其重要程度不同,因而对记录的贡献也是不同的,比如说,有些字段可以唯一确定一条记录,而有些字段却只能对记录的某一方面进行描述。我们在比较两记录的相似性时,首先考虑关键字段,然后再考虑非关键字段。我们知道,一个记录往往是由多个字段构成的,如果对每个字段都进行匹配比较,会浪费很多时间,使检测效率大打折扣,字段太少又不能反映出记录的总体特征,而实际应用中,我们事先并不知道能够反映记录特征的关键字段的准确维数。因此我们需要通过一种方法,选取出能够反映记录特征的字段,只对这些字段进行匹配比较,这样就可以减少检测时间,提高检测效率。字段优选方法的基本思想是首先计算出各维字段的均值,根据每维字段在所有记录中的字段值与该维字段的均值得出每维字段的方差设定一个闭值,用该闭值与每维属性上的方差进行比较,将方差大于闭值的字段删除,保留下来的字段即为特征字段,接下来的记录检测中只对这些特征字段进行匹配。其具体的方法如下:

(1)计算每个分组中个记录各维字段的均值,计算出每维字段的方差,其中方差越大,则该字段越不具有代表性,具体计算公式如下:

其中,表示第k维字段的均值,表示记录xik的字段值;

(2)所述方差与预设的阈值进行比较,将方差大于阈值的字段的序列号组成一个与数据记录无关的字段的集合,将其删除。

经过特征属性优选后,保留了具有代表性的字段,删除了不具有代表性的字段,从而压缩了字段的维数,接下来就要对相似重复记录进行检测,在记录检测时只对这些特征字段进行匹配比较。检测之前,需根据实际情况给各字段分配适当的权重。由于权重的大小决定了所对应字段在记录中的重要程度,因此需根据领域特征和实际情况给各特征字段分配相应的权重,并且记录的所有字段的权重之和为1。

通过本发明的方法,还需要通过字段匹配和记录匹配确定最终的清洗数据结果。本发明利用关键字段字符的区位码对数据集进行排序及分组,提高了算法的运行效率和检测精度。并且通过特征字段优选方法选出分组中具有代表性的字段,删除无关字段,减少了相似重复记录检测时的字段匹配次数,进而减少了记录匹配的运行时间。能够有效地解决大数据量的相似重复记录检测问题。

应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本发明的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定的特征、结构或特性可以任意适合的方式结合在一个或多个实施例中。应理解,在本发明的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本发明实施例的实施过程构成任何限定。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

需要说明的是,在本发明中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。

在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。

上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。

另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(readonlymemory,rom)、磁碟或者光盘等各种可以存储程序代码的介质。

或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、rom、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1