基于MapReduce的粗糙集并行约简方法、装置及系统的制作方法

文档序号:6619640阅读:121来源:国知局
基于MapReduce的粗糙集并行约简方法、装置及系统的制作方法
【专利摘要】本发明提供了一种基于MapReduce的粗糙集并行约简方法、装置及系统,所述方法通过读取待约简决策表后,接着对所述决策表进行简化,再对所述简化后的决策表进行属性重要度并行计算处理,最后再进行属性重要度并行约简得到最终的约简结果,所述方法可以通过一次MapReduce算出所有属性的重要度,且在得到一个约简结果之后又重新删除简化决策表的冗余信息,使得简化决策表更加的精简,因此可以进一步的提高计算速度。另外,本发明提供的基于MapReduce的粗糙集并行约简装置及系统,其与所述方法一样,很好地解决现有技术中知识约简方法存在一定限制条件及不能高效地进行并行化约简的问题并使得储存空间得到进一步的优化。
【专利说明】基于MapReduce的粗糙集并行约简方法、装置及系统

【技术领域】
[0001] 本发明涉及知识约简领域,特别是涉及一种基于MapReduce的粗糙集并行约简方 法、装置及系统。

【背景技术】
[0002] 随着大数据时代的到来,经典的约简方法无法一次性将数据装入到内存中,无法 满足大数据的要求。为此,如何在大数据下能够准确快速的进行数据挖掘时目前本领域技 术人员的一个主要目标。
[0003] 随着Google?公司的分布式文件系统GFS (Google File System)、并行编程模式 MapReduce及分布式数据存储系统BigTable的提出,为大数据的处理提供了基础,其现有 技术中,已有很多经典的数据挖掘方法可以运用到大数据处理中。通常来说,用于数据挖掘 的经典方法主要涉及以下几种。
[0004] 粗糙集,其作为一种经典的处理模糊和不确定的工具,被广泛地应用于机器学习 和数据挖掘领域。在粗糙集的理论中,知识约简是重要的研究内容之一,也是知识获取的关 键步骤,其中,所谓的知识,在粗糙集理论中,"知识"被认为是一种分类能力。例如,人们的 行为是基于分辨现实的或抽象的对象的能力,如在远古时代,人们为了生存必须能分辨出 什么可以食用,什么不可以食用;医生给病人诊断,必须辨别出患者得的是哪一种病。这些 根据事物的特征差别将其分门别类的能力均可以看作是某种"知识"。另外,所谓知识约简 是保持知识库的分类能力不变的条件下,删除其不必要的知识。通过删除冗余知识,可以大 大提高信息系统潜在知识的清晰度。
[0005] MapReduce, MapReduce是Hadoop分布式文件系统中的一个编程模型(即软件框 架),基于它写出来的应用程序能够运行在由上千个商用机器组成的大型集群上,并以一种 可靠容错的式并行处理上T级别的数据集。一个MapReduce作业(job)通常会把输入的数 据集切分为若干独立的数据块,由map任务(task)以完全并行的方式处理它们。框架会对 map的输出先进行排序,然后把结果输入给reduce任务。通常作业的输入和输出都会被存 储在文件系统中。整个框架负责任务的调度和监控,以及重新执行已经失败的任务。
[0006] 通常,MapReduce框架和Hadoop分布式文件系统是运行在一组相同的节点上的, 也就是说,计算节点和存储节点通常在一起。这种配置允许框架在那些已经存好数据的节 点上高效地调度任务,这可以使整个集群的网络带宽被非常高效地利用。另外,map函数和 reduce函数是交给用户实现的,而这两个函数定义了任务本身。
[0007] 在现有理论中,详见文献:
[0008] 1)【Zhang J,Li T,Ruan D,et al. A parallel method for computing rough set approximations [J]· Information Sciences, 2012, 194:209-223】;
[0009] 2)【Junbo Zhang, Jian-Syuan Wong, Tianrui Li, YiPan. A comparison of parallel large-scale knowledge acquisition using rough set theory on different MapReduce runtime systems. International Journal of Approximate Reasoning. 2013】。
[0010] 在以上文献中,提出了一种粗糙集并行近似模型和基于该模型的粗糙集知识获取 并行模型。该模型从理论上给出了很好的证明了,论证了粗糙集并行模型的可行性,但是该 模型只是将粗糙集最基本的方法进行了并行化,粗糙集的约简方法并没有涉及。
[0011] 另外,在文献:
[0012] 3)【钱进,苗夺谦,张泽华.云计算环境下知识约简算法[J].计算机学 报,2011,34(12) : 2332-2343】;
[0013] 4)【钱进,苗夺谦,张泽华.云计算环境下差别矩阵知识约简算法研究[J].计 算机科学,2011,38(8)】中。
[0014] 提出了一种粗糙集的并行化约简方法模型,但是该方法的限制居多,需要是相容 决策表,才可以进行大数据下的约简,实际运用受到很大的限制。
[0015] 简单来讲,以上现有知识约简方法主要存在以下缺陷:
[0016] 首先,虽然可以进行粗糙集的并行计算处理,但是不能够进行约简。
[0017] 其次,虽然也有能够进行粗糙集并行化约简方法,但是其有限制条件,即该方法只 针对相容决策表,在实际应用时受到很大的限制。
[0018] 最后,已存在的并行约简方法|旲型,在运行效率上并不1?,还有待提升。


【发明内容】

[0019] 鉴于以上所述现有技术的不足或缺点,本发明的目的在于提供一种基于 MapReduce的粗糙集并行约简方法、装置及系统,用于解决现有技术中知识约简方法存在一 定限制条件及不能高效地进行并行化约简的问题。
[0020] 为实现上述目的及其他相关目的,本发明提供以下技术方案:
[0021] 一种基于MapReduce的粗糙集并行约简方法包括:
[0022] 读取待约简决策表;
[0023] 初始化第一 MapReduce模型并令其响应所述待约简决策表,以对所述待约简决策 表进行并行计算处理得到带有标记的简化决策表:
[0024] 若所述简化决策表为空,则令其作为所述待约简决策表的最终约简结果并予以输 出;
[0025] 若所述简化决策表为非空,则初始化第二MapReduce模型并令其响应所述带有标 记的简化决策表,以并行计算得到所述带有标记的简化决策表中每个属性的重要度并将其 结果写入Hadoop分布式文件系统中;
[0026] 读取Hadoop分布式文件系统中属性重要度最高的决策表并删除其中的冗余信息 以得到新的待约简决策表,令所述新的待约简决策表作为所述第一 MapReduce模型的输入 值已进行重新约简。
[0027] 另外,本发明还给出了一种基于MapReduce的粗糙集并行约简装置,包括:
[0028] 作业配置模块,用于读取待约简决策表;
[0029] 任务并行简化模块,用于初始化第一 MapReduce模型并令其响应所述待约简决策 表,以对所述待约简决策表进行并行计算处理得到带有标记的简化决策表,若所述简化决 策表为空,则令其作为所述待约简决策表的最终约简结果并予以输出;
[0030] 属性重要度并行计算模块,用于若所述简化决策表为非空时,初始化第二 MapReduce模型并令其响应所述带有标记的简化决策表,以并行计算得到所述带有标记的 简化决策表中每个属性的重要度并将其结果写入Hadoop分布式文件系统中;
[0031] 属性重要度并行约简模块,用于读取Hadoop分布式文件系统中属性重要度最高 的决策表并删除其中的冗余信息以得到新的待约简决策表,令所述新的待约简决策表作为 所述第一 MapReduce模型的输入值已进行重新约简。
[0032] 另外,本发明还提供了一种基于MapReduce的粗糙集并行约简系统,包括:
[0033] 作业配置单元,用于读取待约简决策表;
[0034] 任务并行简化单元,用于初始化第一 MapReduce模型并令其响应所述待约简决策 表,以对所述待约简决策表进行并行计算处理得到带有标记的简化决策表,若所述简化决 策表为空,则令其作为所述待约简决策表的最终约简结果并予以输出;
[0035] 属性重要度并行计算单元,用于若所述简化决策表为非空时,初始化第二 MapReduce模型并令其响应所述带有标记的简化决策表,以并行计算得到所述带有标记的 简化决策表中每个属性的重要度并将其结果写入Hadoop分布式文件系统中;
[0036] 属性重要度并行约简单元,用于读取Hadoop分布式文件系统中属性重要度最高 的决策表并删除其中的冗余信息以得到新的待约简决策表,令所述新的待约简决策表作为 所述第一 MapReduce模型的输入值已进行重新约简。
[0037] 综上所述,本发明相对现有技术,具有以下优点:
[0038] 第一,本发明首先对决策表简化后再进行属性重要度并行计算,之后从属性重要 度计算结果中挑选出属性重要度最高的约简表进行重新约简,从而使得到的约简结果更加 精确。
[0039] 第二,本发明不存在约简表上的限制,相对现有技术中只能对相容性决策表进行 约简的方法,本发明具有更广泛的应用范围。
[0040] 第三,现有其他方法在计算属性重要度上一次并行MapReduce中只能得到一个条 件的重要度,而本方法可以一次MapReduce后,再配合一次简单的读取文本计算,就可以得 到所有的条件属性的重要度,并完成一次约简,也是调高了方法的效率。
[0041] 第四,本发明对决策表进行约简后,可以有效地优化储存空间,同时还可以提高利 用约简后的约简结果来进行计算的计算效率。

【专利附图】

【附图说明】
[0042] 图1显示为MapReduce的工作原理流程图。
[0043] 图2显示为本发明基于MapReduce的粗糙集并行约简方法的工作流程图。
[0044] 图3显示为本发明基于MapReduce的粗糙集并行约简方法的简单示意图。
[0045] 附图标号说明
[0046] S10-S50 步骤

【具体实施方式】
[0047] 以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书 所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实 施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离 本发明的精神下进行各种修饰或改变。需说明的是,在不冲突的情况下,以下实施例及实施 例中的特征可以相互组合。
[0048] 本发明基于MapReduce和粗糙集来实现的,为了使本领域技术人员能更好地清楚 和理解本技术方案,这里先对MapReduce和粗糙集做相应地解释和说明。
[0049] MapReduce的相关概述
[0050] MapReduce是一种编程模型,用于大规模数据集的并行运算。概念"Map(映射)" 和"Reduce (归约)",及他们的主要思想,都是从函数式编程语言里借来的,还有从矢量编 程语言里借来的特性。它极大地方便了编程人员在不会分布式并行编程的情况下,将自己 的程序运行在分布式系统上。当前的软件实现是指定一个Map (映射)函数,用来把一组键 值对映射成一组新的键值对,指定并发的Reduce (归约)函数,用来保证所有映射的键值对 中的每一个共享相同的键组。
[0051] 见图1,下面将结合图1来对MapReduce的工作原理流程做一个简单的说明。
[0052] Map 端
[0053] 第一,每个输入分片会让一个Map任务来处理,默认情况下,以HDFS的一个块的大 小(例如为64M)为一个分片,当然我们也可以设置块的大小。Map输出的结果会暂且放在 一个环形内存缓冲区中,当该缓冲区快要溢出时,会在本地文件系统中创建一个溢出文件, 将该缓冲区中的数据写入这个文件。
[0054] 第二,在写入磁盘之前,线程首先根据Reduce任务的数目将数据划分为相同数目 的分区,也就是一个Reduce任务对应一个分区的数据。这样做是为了避免有些Reduce任务 分配到大量数据,而有些Reduce任务却分到很少数据,甚至没有分到数据的尴尬局面。其 实分区就是对数据进行缓存(hash)的过程,然后对每个分区中的数据进行排序,这样做的 目的是让尽可能少的数据写入到磁盘。
[0055] 第三,当Map任务输出最后一个记录时,可能会有很多的溢出文件,这时需要将这 些文件合并。目的有两个:尽量减少每次写入磁盘的数据量和.尽量减少下一复制阶段网 络传输的数据量,最后合并成了一个已分区且已排序的文件。为了减少网络传输的数据量, 还可以将数据压缩。
[0056] 第四,将分区中的数据拷贝给相对应的Reduce任务。
[0057] Reduce 端
[0058] 第一,Reduce会接收到不同Map任务传来的数据,并且每个Map传来的数据都是 有序的。如果Reduce端接受的数据量相当小,则直接存储在内存中,如果数据量超过了该 缓冲区大小的一定比例,则对数据合并后溢写到磁盘中。
[0059] 第二,随着溢写文件的增多,后台线程会将它们合并成一个更大的有序的文件,这 样做是为了给后面的合并节省时间。其实不管在Map端还是Reduce端,MapReduce都是反 复地执行排序,合并操作。
[0060] 第三,合并的过程中会产生许多的中间文件(写入磁盘了),但MapReduce会让 写入磁盘的数据尽可能地少,并且最后一次合并的结果并没有写入磁盘,而是直接输入到 Reduce 函数。
[0061] 粗糙集的相关概述
[0062] 首先,先介绍下文将用到的粗糙集有关的基本概念以及一些关于MapRedce模型

【权利要求】
1. 一种基于MapReduce的粗糙集并行约简方法,其特征在于,包括: 读取待约简决策表; 初始化第一 MapReduce模型并令其响应所述待约简决策表,以对所述待约简决策表进 行并行计算处理得到带有标记的简化决策表: 若所述简化决策表为空,则令其作为所述待约简决策表的最终约简结果并予以输出; 若所述简化决策表为非空,则初始化第二MapReduce模型并令其响应所述带有标记的 简化决策表,以并行计算得到所述带有标记的简化决策表中每个属性的重要度并将其结果 写入Hadoop分布式文件系统中; 读取Hadoop分布式文件系统中属性重要度最高的决策表并删除其中的冗余信息以得 到新的待约简决策表,令所述新的待约简决策表作为所述第一 MapReduce模型的输入值已 进行重新约简。
2. 根据权利要求1所述的基于MapReduce的粗糙集并行约简方法,其特征在于,利用第 一 MapReduce模型对所述待约简决策表进行并行计算处理得到简化决策表的具体方法包 括: 对所述待约简决策表进行作业配置,以得到多个子决策表; 令第一 MapReduce模型的Map函数对所述多个子决策表进行并行计算以得到所述待约 简决策表中的条件属性和决策属性,并予以输出; 令第一 MapReduce模型的Reduce函数对所述条件属性和决策属性进行计算后得到带 有标记的简化决策表。
3. 根据权利要求1或2所述的基于MapReduce的粗糙集并行约简方法,其特征在于,利 用第二MapReduce模型并行计算所述简化决策表中每个属性的重要度的具体方法包括: 初始化第二MapReduce模型; 令所述第二MapReduce模型的Map函数响应所述带有标记的简化决策表,以并行计算 得到所述带有标记的简化决策表中每个属性的每个分类对应取到的决策值; 令所述第二MapReduce模型的Reduce函数响应所述决策值,以得到每个属性的每一等 价类取到的属性重要度,并将其结果写入Hadoop分布式文件系统中。
4. 根据权利要求1或3所述的基于MapReduce的粗糙集并行约简方法,其特征在于,若 于所述Hadoop分布式文件系统中所读取的属性重要度最高的决策表有多个,则随机选择 其中一个属性重要度最高的决策表并删除其中的冗余信息以得到新的待约简决策表。
5. -种基于MapReduce的粗糙集并行约简装置,其特征在于,包括: 作业配置模块,用于读取待约简决策表; 任务并行简化模块,用于初始化第一 MapReduce模型并令其响应所述待约简决策表, 以对所述待约简决策表进行并行计算处理得到带有标记的简化决策表,若所述简化决策表 为空,则令其作为所述待约简决策表的最终约简结果并予以输出; 属性重要度并行计算模块,用于若所述简化决策表为非空时,初始化第二MapReduce 模型并令其响应所述带有标记的简化决策表,以并行计算得到所述带有标记的简化决策表 中每个属性的重要度并将其结果写入Hadoop分布式文件系统中; 属性重要度并行约简模块,用于读取Hadoop分布式文件系统中属性重要度最高的决 策表并删除其中的冗余信息以得到新的待约简决策表,令所述新的待约简决策表作为所述 第一 MapReduce模型的输入值已进行重新约简。
6. 根据权利要求1所述的基于MapReduce的粗糙集并行约简装置,其特征在于: 所述任务并行简化模块,具体用于对所述待约简决策表进行作业配置,以得到多个子 决策表;令第一 MapReduce模型的Map函数对所述多个子决策表进行并行计算以得到所述 待约简决策表中的条件属性和决策属性,并予以输出;令第一 MapReduce模型的Reduce函 数对所述条件属性和决策属性进行计算后得到带有标记的简化决策表。
7. 根据权利要求1所述的基于MapReduce的粗糙集并行约简装置,其特征在于: 所述属性重要度并行计算模块,具体用于初始化第二MapReduce模型;令所述第二 MapReduce模型的Map函数响应所述带有标记的简化决策表,以并行计算得到所述带有标 记的简化决策表中每个属性的每个分类对应取到的决策值;令所述第二MapReduce模型的 Reduce函数响应所述决策值,以得到每个属性的每一等价类取到的属性重要度,并将其结 果写入Hadoop分布式文件系统中。
8. 根据权利要求1所述的基于MapReduce的粗糙集并行约简装置,其特征在于:所述 属性重要度并行约简模块,还用于在于所述Hadoop分布式文件系统中所读取的属性重要 度最高的决策表有多个时,随机选择其中一个属性重要度最高的决策表并删除其中的冗余 息以得到新的待约简决策表。
9. 一种基于MapReduce的粗糙集并行约简系统,其特征在于,包括: 作业配置单元,用于读取待约简决策表; 任务并行简化单元,用于初始化第一 MapReduce模型并令其响应所述待约简决策表, 以对所述待约简决策表进行并行计算处理得到带有标记的简化决策表,若所述简化决策表 为空,则令其作为所述待约简决策表的最终约简结果并予以输出; 属性重要度并行计算单元,用于若所述简化决策表为非空时,初始化第二MapReduce 模型并令其响应所述带有标记的简化决策表,以并行计算得到所述带有标记的简化决策表 中每个属性的重要度并将其结果写入Hadoop分布式文件系统中; 属性重要度并行约简单元,用于读取Hadoop分布式文件系统中属性重要度最高的决 策表并删除其中的冗余信息以得到新的待约简决策表,令所述新的待约简决策表作为所述 第一 MapReduce模型的输入值已进行重新约简。
10. 根据权利要求9所述的基于MapReduce的粗糙集并行约简系统,其特征在于: 所述任务并行简化单元,具体用于对所述待约简决策表进行作业配置,以得到多个子 决策表;令第一 MapReduce模型的Map函数对所述多个子决策表进行并行计算以得到所述 待约简决策表中的条件属性和决策属性,并予以输出;令第一 MapReduce模型的Reduce函 数对所述条件属性和决策属性进行计算后得到带有标记的简化决策表; 所述属性重要度并行计算单元,具体用于初始化第二MapReduce模型;令所述第二 MapReduce模型的Map函数响应所述带有标记的简化决策表,以并行计算得到所述带有标 记的简化决策表中每个属性的每个分类对应取到的决策值;令所述第二MapReduce模型的 Reduce函数响应所述决策值,以得到每个属性的每一等价类取到的属性重要度,并将其结 果写入Hadoop分布式文件系统中; 所述属性重要度并行约简单元,还用于在于所述Hadoop分布式文件系统中所读取的 属性重要度最高的决策表有多个时,随机选择其中一个属性重要度最高的决策表并删除其 中的冗余信息以得到新的待约简决策表。
【文档编号】G06F9/44GK104063230SQ201410325508
【公开日】2014年9月24日 申请日期:2014年7月9日 优先权日:2014年7月9日
【发明者】席大超, 王国胤, 张学睿, 张帆, 封雷, 李广砥, 邓伟辉, 郭义帅, 谢亮, 董建华 申请人:中国科学院重庆绿色智能技术研究院
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1