本发明属于大数据清洗技术领域,涉及对不完整数据的大数据清洗方法。
背景技术:
随着信息化的发展,企业内部积累了大量的电子数据,这些数据对企业非常重要。 但是,由于各种原因,企业现有的系统数据库中存在重复的记录、错误的数据、不完整的数据等不洁的数据。 这些肮脏的数据扭曲了从数据中获取的信息,影响了信息系统的运行效果,也给企业建立数据仓库、建立决策支持系统和应用商业智能带来危险。
数据清理对于提高信息系统的数据质量至关重要。 其中,数据不完整性(Incompleteness )是导致数据质量问题的重要因素之一。
简单地说,数据不完整是数据源中属性值丢失的问题。 不完整数据的存在会导致决策错误,尤其是由于数字数据中存在不完整的数据,因此必须解决数据源中数据的不完整问题。
技术实现要素:
本发明的目的是提供一种对不完全数据的大数据清洗方法。 为了克服数据源中不完整数据增加数据源清理难度、降低数据质量、影响数据挖掘效果的问题,数据源之间的属性值不是相互独立的特性,而是通过识别属性值之间的关系来估计丢失的属性值,从而
为了解决上述技术课题,本发明采用了对不完全数据的大数据清洗方法,该清洗方法包括:经由JDBC接口取入被清洗数据的S1、取入所述被清洗数据的s2、和消除所述被清洗数据的s3 S3 )对数据进行不完整数据的检测、判断和修改; S4,通过JDBC接口将结果数据导出到新数据源。
此外,在上述步骤S1中,JDBC是Java数据库连接,简称Java数据库连接,该接口向系统调用数据源中需要清理的数据,进行数据清理
此外,在所述步骤S2中,数据预处理是指对数据记录格式进行标准化,根据预定的规则,将数据记录中的相应字段转换成相同的格式。
此外,在所述步骤S3中,通过使用算法库、规则库和数据清理日志完成与不完整数据有关的处理。
此外,在上述步骤S4中,JDBC将通过处理获得的正确的数据导出到新数据库。
本发明与现有技术相比具有以下有益效果。
针对数据源中不完整的数据增加了数据源清理难度、降低了数据质量、影响数据挖掘效果的问题,本发明通过利用数据源之间的属性值不是相互独立的特性来识别属性值之间的关系来进行丢失
图纸说明
图1是对不完整数据的大数据清洗方法的流程图。
图2是针对不完全数据的大数据清洗方法中的不完全数据操作原理的流程图。
具体实施方式
下文中将参考附图和具体实施例来更详细和完整地说明本发明。 应当理解,在此描述的具体实施例仅用于说明本发明,但并不限制本发明。
参考图1,本发明的用于不完整数据的大数据清洗方法包括以下内容。
S1 )将数据源中需要清理的数据通过JDBC ) Javadatabaseconnectivity、Java数据库连接)接口进入系统,执行数据清理;
S2 )数据预处理单元调用算法库中的适当算法对数据源进行预处理。 例如,标准化数据记录格式,并根据预定义的规则将数据记录中的适当字段转换为相同的格式;
S3、不完全数据检测部分首先调用算法库中的检测算法判断各记录是否完整。 如果记录完成,则不需要清理,直接进入步骤S4; 如果记录不完整,则将记录导入记录可用性检测模块,记录可用性检测模块从算法库中调用可用性检测算法以执行记录可用性检测,并根据规则库中定义的规则启用记录如果记录不可用,则直接删除记录。 如果记录可用,则记录完成模块从算法库中调用相关算法来完成该记录,并且在处理结束时进行到步骤S4;
S4、将处理中得到的正确结果数据通过JDBC接口导出到新数据库。
对于通过基于规则合理定义阈值来灵活合理地确定记录取舍的记录,还可以通过在算法库中选择适当的记录完成算法来补充保留的记录。
1、不完整数据可用性检查
从图2可以看到,记录可用性检查是不完整的数据清理过程中的重要步骤。 如果一个记录的属性值丢失太多,或者其馀属性值不包含重要信息,则无需花费精力来补充该记录。 因此,判断记录的可用性对于解决数据不完整很重要。 确定记录的可用性是根据每个记录的不完整程度和其他因素来决定是保留还是删除这些记录。
关于记录可用性的检测,采用首先评价各记录的不完备性,即计算各记录中丢失的属性值的比例,然后考虑剩馀属性值是否存在重要信息等其他因素,来决定记录的取舍的方法。 如果记录的属性取默认值,则意味着该属性值已丢失,因此属性值为默认值的也应作为丢失的值来处理。 评估记录不完整的方法如下。
假设记录可以表示为:
R={a1,a2,…,an}
在此,a1、a2、…、an意味着记录r的n个属性。 假设Ri(aj )表示记录ri的第j个属性aj的值,aj ) default )表示记录第j个属性aj的默认值,m表示记录r中的属性值丢失的数目(包括属性值的取值方法)
缺省值的字段),AMR表示记录R中属性值丢失的比率,l为记录R中属性值丢失比率的阈值,如果:则表示该比较完整,应保留记录R;否则,删除记录R。
在进行不完整数据清理时,l的值由域专家根据对具体数据源的分析来确定,并定义在规则库中供系统调用。数据表中各个属性aj的缺省值aj(default)也定义在规则库中,供系统计算m值时调用。
此外,在决定记录取舍时,除了评估每一条记录的不完整程度外,有时还需要考虑该记录中关键的属性值是否存在。关键属性要由域专家根据对具体数据源的分析来确定。如果不完整数据中关键属性值存在,即使AMR>l,也应该保留记录。
由图2可知,在检测记录的可用性之前,先要检测出数据表中的不完整数据。检测不完整数据的算法比较简单,其伪码可描述如下:
(1)FOR i=1TO T;
//T为数据表中记录的总数
(2)FOR j=1TO n;
①IF Ri(aj)is NULL Or Ri(aj)=Ri(aj(default))Then
把该记录标识为不完整数据;
②END IF;
(3)END;
(4)END;
在具体的清理过程中,为了提高系统运行效率,可以把不完整数据检测合并到数据可用性检测这一步骤中。
根据以上分析,把不完整数据检测合并到数据可用性检测步骤中,合并后的记录可用性检测的伪码描述如下:
(1)选取阈值l,初始化m为0,即:m=0;
(2)FOR i=l TO T;//T为数据表中记录的总数
(3)FOR j=1TO n;
①IF Ri(aj)is NULL Or Ri(aj)=aj(default)Then
m=m+1;
②END IF;
③IF m=0Then
导人数据源;
④ELSE
A)IF Ri(ak)is Not NULL
//Ri(ak)表示该数据表中的关键属性的值
Then
该记录标识为可用不完整数据;
B)ELSE
计算AMR;
C)END IF;
⑤END IF;
⑥IF AMR=<1Then
Delete Ri;
⑦ELSE
该记录标识为可用不完整数据;
⑧END IF;
(4)END;
(5)END;
以上记录可用性检测算法保存在算法库中,供数据清理时调用。
2、缺失数据的常用处理方法
在完成记录可用性检测之后,对那些要保留的不完整数据记录,要采取一定的方法来处理该记录中丢失的属性值,一般采取以下几种处理方法:
(1)人工处理法
对一些重要数据,或当不完整数据的数据量不大时应该采用这种方法。
(2)常量替代法
常量替代法就是对所有缺失的属性值用同一个常量来填充,如用“Unknown”或“Miss Value”。这种方法最简单,但是由于所有的缺失值都被当成同一个值,容易导致错误的分析结果。
(3)平均值替代法
平均值替代法就是使用一个属性的平均值来填充该属性的所有缺失的值。
(4)最常见值替代法
最常见值替代法就是使用一个属性中出现最多的那个值来填充该属性的所有缺失值。
(5)估算值替代法
估算值替代法是最复杂也是最科学的一种处理方法。采用这种方法处理缺失属性值的过程为:首先采用相关算法,如回归、判定树归纳等算法预测该属性缺失值的可能值,然后用预测值填充缺失值。
此处给出了常用的几种处理记录中丢失属性值的方法。在执行不完整数据的清理过程中究竟采用何种处理方法,要根据具体的数据源来确定。
以上所述仅为本发明的优选实施例,并不用于限制本发明,对于本领域技术人员而言,本发明可以有各种改动和变化。凡在本发明的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。