一种基于函数依赖的多样性数据修复方法技术

技术编号:17196162 阅读:18 留言:0更新日期:2018-02-03 22:51
本发明专利技术涉及一种基于函数依赖的多样性数据修复方法,初始化修复集合;判断修复集合中的修复个数是否小于等于设定修复个数,若是,则初始化输入队列后进行下一步,否则进行最后一步;利用偏好函数w’(c)选择每个修复的修复元素,生成输入队列;利用Genrepair算法进行数据修复;判断修复集合中是否包含与本次相同的修复,若为是,则直接返回第二步,否则将本次修复操作加入修复集合,返回第二步;判断是否满足终止条件,若为是,则修复完成,否则对修复集合进行检查,并进行选取相应修复进行替换。与现有技术相比,本发明专利技术同时考虑多样性和代价进行数据修复、提高修复效率以及可以适用于指数级别的修复空间的有效动态采样等优点。

【技术实现步骤摘要】
一种基于函数依赖的多样性数据修复方法
本专利技术涉及电力数据修复领域,尤其是涉及一种基于函数依赖的多样性数据修复方法。
技术介绍
随着社会信息化进程的加快,数据的处理量日益增多、数据处理流程变得复杂,难免会出现脏数据和不一致的情况。除了大数据众所周知的3V特性,即多数据类型和多数据源(variety),海量规模(volume)和动态数据特征(velocity),学术界和工业界越来越关注到大数据的质量问题,进一步提出了大数据的如数据价值(value)和数据真实性(veracity)等特征。很显然,如果数据本身存在各种各样的错误,那么不管系统可以多么高速地处理多么大量的数据,都无法为用户提供正确的信息。据高德纳公司(Gartner)统计,在全球财富1000强公司中有超过25%的公司关键数据不正确或不精确。在美国企业中有1%~30%的公司数据存在各类错误和误差,仅就医疗数据而言,有13.6%~81%的关键数据遗缺或陈旧。而数据是企业降低成本、损失和增加收入不可或缺的工具,例如英国BT公司(BritishTelecom)因使用数据质量工具而创造的企业效益每年高达6亿英镑。在针对电力大数据的研究中,正如前面提及数据常常是有错误的。此时无论我们的查询语句写得再好,数据库管理系统设计得如何高效,我们都不能保证获得准确、完整、及时甚至是正确的访问结果。保证数据质量的重要性随着科学技术的发展,数据价值的提高而日益重要。能够为企业、政府部门提供有效、准确的高质量数据是保证社会正常运转的基础,是我们的重点研究对象。在数据库理论中,完整性约束是定义在数据值上的约束类型,它是现实世界中数据间关系的抽象表示,反映了属性或属性组之间的相互依存、相互制约的关系。随着大数据时代的来临,数据录入、整合、提取等环节不断增多,我们常常发现数据存在违反约束的现象。这种不一致的数据不仅严重地影响了数据的质量而且大大降低了数据的利用价值,因此基于完整性约束的数据修复技术相继提出。早期的方法主要通过引入新的元组或删除冲突元组消除不一致数据。近几年,值修复技术开始被广泛地研究,人们通过修改冲突的属性值生成一个满足约束的新数据库――修复。由于修复空间的大小是指数级的,前面的工作主要集中在寻找一个(近似)最优修复或者从修复空间中随机地产生修复。所谓“最优”一般定义在某种代价度量下,指求得一个代价最小的修复。可能的度量方法包括编辑距离,欧式距离等。单一的修复求解意味着抛弃所有其他可能的修复方式,即使存在其他修复具有相近、甚至是相同的代价度量。另外一方面,随机生成修复的方法完全不考虑修复的代价,也就是完全忽略了不同修复实际发生的可能性差异。考虑到修复空间的指数级大小,随机生成修复的方法通常是低效的。
技术实现思路
本专利技术的目的就是为了克服上述现有技术存在的缺陷而提供一种基于函数依赖的多样性修复方法。本专利技术的目的可以通过以下技术方案来实现:一种基于函数依赖的多样性数据修复方法,所述的数据修复方法包括以下步骤:S1、初始化修复集合;S2、判断修复集合中的修复个数是否小于等于设定修复个数,若是,则进行步骤S3,若为否,则进行步骤S6;S3、初始化输入队列后,利用偏好函数选择每个修复的修复元素,并根据选择的修复元素生成输入队列;S4、根据输入队列利用Genrepair算法进行数据修复;S5、判断修复集合中是否包含与本次相同的修复,若为是,则直接返回S2,若为否,则将本次修复加入修复集合,返回S2;S6、判断是否满足终止条件,若为是,则修复完成,若为否,则从修复集合中未被标记的修复中选取对目标函数贡献值最大的一个修复r,重复S3~S4得到一个新修复r’,用新修复r’替换修复r得到新的修复集合,计算新的修复集合是否使目标函数值降低,若为否则恢复原来的修复集合并将r贴上标签,若为是则保留新的修复集合,重复S6。优选地,步骤S6中所述的终止条件具体为:生成新修复的次数达到设定值或新修复使得目标函数的减少量低于设定值。优选地,步骤S6中所述的目标函数为:在有k个修复的集合S={r1,...,rk}中,目标函数fd(S)表示为S中修复代价总和与距离总和之间的差值:其中,λ是用于调节代价和距离比例的参数,ri为k个修复的集合S中第i个修复,rj为k个修复的集合S中第j个修复,S为包含这k个修复的集合,c(ri)为第i个修复的代价,k为修复的个数,d(ri,rj)为第i个修复和第j个修复之间的距离。优选地,步骤S6中修复对目标函数贡献值的计算方法为:其中,λ是用于调节代价和距离比例的参数,S为修复的集合,k为修复的个数,r表示一个修复,ri为k个修复的集合S中第i个修复,c(r)为修复r的代价,d(r,ri)为修复r和第i个修复之间的距离。优选地,所述的偏好函数w’(c)为:若修复集合Sk大小为1,则w'(c)=w(t,A)/(vio(t[A])+1),否则w'(c)=(w(t,A)·(1-λ)+λ·cnt(Sk,t[A])·w(t,A)/(|Sk|+1))/(vio(t[A])+1),其中,λ是用于调节代价和距离比例的参数,w(t,A)表示元组t上属性值A的权重,cnt(Sk,t[A])表示修复集合Sk中修改过单元t[A]的修复的个数,vio(t[A])表示单元t[A]参与的冲突数,|Sk|为修复集合Sk中修复的个数。优选地,步骤S3中利用偏好函数w’(c)选择修复元素具体为:选取满足w’(c)≥minw’(·)+α*(maxw’(·)-minw’(·))条件的修复元素,其中minw’(·)和maxw’(·)分别表示w’(c)的最小值和最大值,α为带参数。优选地,步骤S4中利用Genrepair算法进行元素修复具体包括以下步骤:S401、初始化等价类集合;S402、判断输入队列L中待修复单元个数是否为0,若为是则修复完成,若为否,则将输入队列中待修复单元个数减1后进行下一步;S403、判断正在处理的单元对应的待加入的等价类是否已有等价类值,若为是,则进行S404,否则进行S405;S404、判断正在处理的单元值是否等于待加入的等价类值,若为是则维持原单元值并返回S402,否则将当前正在处理的单元值修改为待加入的等价类值;S405、将当前单元值作为待加入的等价类值,判断是否有与当前单元属性值相同的等价类,若为是则调用合并算法Merge进行合并等价类操作,若为否,则直接返回S402。优选地,所述的合并算法Merge包括以下步骤:S4051、初始化合并列表,并将待合并的一对等价类加入合并列表;S4052、判断合并列表是否为空,若为空则合并完成,若不为空则进行下一步;S4053、从合并列表中取出一对等价类,判断该对等价类的值是否非空且不同,若为是则为当前单元和该单元对应等价类引入新值,否则进行等价类合并,取非空值;S4054、进行增量式合并后返回S4052。优选地,所述的增量式合并具体为:将与正在处理的单元对应的等价类有函数映射关系的等价类进行合并。优选地,所述的α的取值范围为[0,1]。与现有技术相比,本专利技术具有以下优点:1、保持修复之间的差异性的同时求得代价最小的修复:本专利技术多样性的修复结果应该同时满足两个因素,主要考虑了多样性修复中“代价(cost)”和“距离(distanc本文档来自技高网
...
一种基于函数依赖的多样性数据修复方法

【技术保护点】
一种基于函数依赖的多样性数据修复方法,其特征在于,所述的数据修复方法包括以下步骤:S1、初始化修复集合;S2、判断修复集合中的修复个数是否小于等于设定修复个数,若是,则进行步骤S3,若为否,则进行步骤S6;S3、初始化输入队列后,利用偏好函数选择每个修复的修复元素,并根据选择的修复元素生成输入队列;S4、根据输入队列利用Genrepair算法进行数据修复;S5、判断修复集合中是否包含与本次相同的修复,若为是,则直接返回S2,若为否,则将本次修复加入修复集合,返回S2;S6、判断是否满足终止条件,若为是,则修复完成,若为否,则从修复集合中未被标记的修复中选取对目标函数贡献值最大的一个修复r,重复S3~S4得到一个新修复r’,用新修复r’替换修复r得到新的修复集合,计算新的修复集合是否使目标函数值降低,若为否则恢复原来的修复集合并将r贴上标签,若为是则保留新的修复集合,重复S6。

【技术特征摘要】
1.一种基于函数依赖的多样性数据修复方法,其特征在于,所述的数据修复方法包括以下步骤:S1、初始化修复集合;S2、判断修复集合中的修复个数是否小于等于设定修复个数,若是,则进行步骤S3,若为否,则进行步骤S6;S3、初始化输入队列后,利用偏好函数选择每个修复的修复元素,并根据选择的修复元素生成输入队列;S4、根据输入队列利用Genrepair算法进行数据修复;S5、判断修复集合中是否包含与本次相同的修复,若为是,则直接返回S2,若为否,则将本次修复加入修复集合,返回S2;S6、判断是否满足终止条件,若为是,则修复完成,若为否,则从修复集合中未被标记的修复中选取对目标函数贡献值最大的一个修复r,重复S3~S4得到一个新修复r’,用新修复r’替换修复r得到新的修复集合,计算新的修复集合是否使目标函数值降低,若为否则恢复原来的修复集合并将r贴上标签,若为是则保留新的修复集合,重复S6。2.根据权利要求1所述的一种基于函数依赖的多样性数据修复方法,其特征在于,步骤S6中所述的终止条件具体为:生成新修复的次数达到设定值或新修复使得目标函数的减少量低于设定值。3.根据权利要求2所述的一种基于函数依赖的多样性数据修复方法,其特征在于,步骤S6中所述的目标函数为:在有k个修复的集合S={r1,...,rk}中,目标函数fd(S)表示为S中修复代价总和与距离总和之间的差值:其中,λ是用于调节代价和距离比例的参数,ri为k个修复的集合S中第i个修复,rj为k个修复的集合S中第j个修复,S为包含这k个修复的集合,c(ri)为第i个修复的代价,k为修复的个数,d(ri,rj)为第i个修复和第j个修复之间的距离。4.根据权利要求1所述的一种基于函数依赖的多样性数据修复方法,其特征在于,步骤S6中修复对目标函数贡献值的计算方法为:其中,λ是用于调节代价和距离比例的参数,S为修复的集合,k为修复的个数,r表示一个修复,ri为k个修复的集合S中第i个修复,c(r)为修复r的代价,d(r,ri)为修复r和第i个修复之间...

【专利技术属性】
技术研发人员:谈子敬周向东庞悦陈海波苏运郭乃网田英杰
申请(专利权)人:国网上海市电力公司华东电力试验研究院有限公司复旦大学
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1