设计 任务书 文档 开题 答辩 说明书 格式 模板 外文 翻译 范文 资料 作品 文献 课程 实习 指导 调研 下载 网络教育 计算机 网站 网页 小程序 商城 购物 订餐 电影 安卓 Android Html Html5 SSM SSH Python 爬虫 大数据 管理系统 图书 校园网 考试 选题 网络安全 推荐系统 机械 模具 夹具 自动化 数控 车床 汽车 故障 诊断 电机 建模 机械手 去壳机 千斤顶 变速器 减速器 图纸 电气 变电站 电子 Stm32 单片机 物联网 监控 密码锁 Plc 组态 控制 智能 Matlab 土木 建筑 结构 框架 教学楼 住宅楼 造价 施工 办公楼 给水 排水 桥梁 刚构桥 水利 重力坝 水库 采矿 环境 化工 固废 工厂 视觉传达 室内设计 产品设计 电子商务 物流 盈利 案例 分析 评估 报告 营销 报销 会计
 首 页 机械毕业设计 电子电气毕业设计 计算机毕业设计 土木工程毕业设计 视觉传达毕业设计 理工论文 文科论文 毕设资料 帮助中心 设计流程 
垫片
您现在所在的位置:首页 >>理工论文 >> 文章内容
                 
垫片
   我们提供全套毕业设计和毕业论文服务,联系微信号:biyezuopin QQ:2922748026   
基于大数据的数据识别算法在文档搜索中的应用(设计模板)
文章来源:www.biyezuopin.vip   发布者:毕业作品网站  
结果,另外再采取人为自定义的数据来进行测试,这样一来保证了算法测试结果的准确和客观性。无论哪种方法都主要从算法的以下三个方面实验进行测试:准确性、执行时间及参数λ的影响,并且最后将此算法应用到文档搜索中去。

下面是用 Java代码实现的节点结构

Class vexNode

{

int type;//表示节点类型,包括原始点、收缩点、未收缩无效点及已收缩无效点

Int simNum;//表示节点所处相似实体类的编号

ArrayList<integer>adjold//表示节点所邻接的原始节点的集合

ArrayList<integer>contain//表示节点所包含的原始节点的集合

Map<integer,Double>probability//表示邻接节点边的概率

}

4.1算法的准确性

为了验证其准确性,决定采用与其他同类型数据处理的算法进行对比,先让DRBB算法与将本文的识别结果与文献[11]中所提出的5种数据识别算法,同时以准确率(Precision,P)、召回率(Recall,R)及F1(准确率与召回率的折中)作为对比标准。文献[12]中的数据集及识别结果如图6所示:

图6 算法识别结果对比(数据集大小为2616)

又由下图图7所示,在将数据分别用这六个算法进行处理后,将每个算法处理后得到的结果进行对比,可以十分明显的看出DRBB算法得出的结果的精确性高于其他五个算法,可见DRBB算法的识别结果,其平均准确率高于对比的5个算法,召回率较其他两个算法低一点,在F1方面优势更加明显。这些数据都无疑证明了DRBB算法比其他算法更加稳定。

图7 算法精确度对比结果

4.2 算法的执行时间

在检验完算法的准确率后,现在从算法的执行时间方面入手检测在面对海量数据时DRBB算法的执行效率。现按照以下步骤执行该算法:采取两种实验方式,第一种是现将数据用Map-Reduce框架分别Map和Reduce处理52次。让后采用从网上自动提取数据的方式提取出0.98GB的数据,第二种是采用人工手动用数据生成器随机生产出数据量约为1.01G的数据同时每个数据都包含10个属性值。最后给每个属性定义权重值为0.1的权重。结论见表1,从表1中的结果可以看出:在处理数据量较大的情况时,DRBB算法具有执行时间短,算法的效率相当不错。

表1 DRBB算法执行效率

DataSet

Size/条

空间/GB

Running Time/s

URL

18789004

0.98

1762

Artificial

6836953

1.01

2833

4.3 参数λ的影响

现在开始测试自定义的参数λ对该算法执行过程中的影响,大致将从以下三个方面入手进行验证:数据集合大小、λ的大小和、Map-Reduce执行时所处理的任务个数。

4.3.1 数据集合大小

先测试一下数据集合对算法执行完成的时间的影响。选取人工随机生成的数据进行试验,分别将该数据集合的数据集大小选取出10MB,20MB,50MB,100MB,200MB.测试后的结果如图8。

图8 算法时间和数据集大小关系

由此图可以看出用DRBB算法处理数据时,数据集的量越大,算法执行完的时间越短,相反面对数量集较小的情况时算法执行时间却较长,没有真正发挥出该算法的性能。这样十分直观的表示了该算法在处理大量数据时具备十分优良的执行效率。

4.3.2 参数λ大小对算法精确度的影响

DRBB算法在执行过程中会受到参数λ的影响,那么在λ大小不同时对算法执行的结果的准确度所产生的影响是需要检验的,现在获取数据大小为5KB的数据集。实验结束后的结果如图9所示,由此图可以看出:当λ越大时,算法执行后的结果准确度越高,因为λ越大时,洋相满足实体划分的那个标准,必须在划分时将数据属性值的相似度更高的数据划分到一起,而相反相似度较低的则更加不会被归为一类。顾名思义当每个分类中的数据属性相似度提高了,相应的准确度自然就提高了,与此同时召回率降必然随着准确度的提高而降低,另外F1在这次实验中没有随着λ的变化而出现较大波动,表现得十分稳定。

图9 划分参数λ大小对算法精确性的影响

4.3.3 Map-Reduce所处理的任务量

这次将根据算法执行时Map-Reduce所处理的不同任务量来判断算法受其的影响程度,每一个Map-Reduce都是代表它正在处理一个进程,故而Map-Reduce的数量可以表示进程的数量。此次测试从算法执行时Map-Reduce的个数入手,验证算法的执行效率,集同样的选取两个不同大小的数量级:10MB和500MB。

图10 Map-Reduce数量对算法执行过程中的影响

由图10可以看出:Map-reduce的进程数对算法的执行时间影响是分两种情况的,当数据量较少时影响较小,相反当数据量较大时影响较大,数据量比较大时,进程数越大算法执行所需时间越短,效率越高。

4.4 实验小结

根据上面的实验,可以看出,该算法的性能受到数据集合大小、λ的大小和、Map-Reduce执行时所处理的任务个数的影响颇大,但无论何种情况,DRBB算法都被证明了在面对数量集较大的情况时其算法才能充分发挥其性能。

4.5 数据识别算法在文档搜索中的应用

由上述实验可知DRBB在面对海量数据时能够十分准确和高效的对数据进行识别,大大降低了冗余和重复的情况,现如今人们每天都将接收大量的信息,尤其是面对需要查询的问题时,如何从数之不尽的文档中找到自己想要到那一部分,是一个问题。而DRBB算法正好可以应用到文档搜索中来。举个例子:现在有人搜索地球离火星多远(How far is it from Earth to Mars?),这个时候为了方便起见现在输入“from Earth to Mars”。查询结果会显示许多含有这些关键字的文档,而哪一个是自己想要的却无法直接找到,需要花大量的时间和精力一个一个看。现在利用DRBB算法,在构造的倒排索引表中进行初步聚类,然后通过算法中数据识别那一步中依次进行多轮Map-Reduce、阈值计算、图聚类后,自动在语料库中根据计算后的相似概率筛选出最佳的答案及其上下文显示给客户,通过算法处理后显示给用户的文档数量将大大降低,让用户可以十分迅速的找到所需要的文档数据。

图11 在文档搜索中DRBB搜索框架

当用户输入:“from Earth to Mars”后,经过DRBB算法筛选后的文档会显示这样一句话:“...the distance between Earth and Mars varies from 34 million miles to 249million miles”,其中from 34 million miles to 249million miles便是反馈给用户最准确的答案。

5 结论

在处理大量数据时,不仅要面对异构数据和大量非结构化数据,数据在表示上也存在多样化,且数据多数来自不同的数据源,故而降低数据质量的主要原因是数据的冗余和数据集成自不同数据的源后的重名。本篇论文提出的大数据处理的数据识别算法DRBB,先抽样,将抽取的对象的属性值构造一个倒排索引表,在查找时大大减少了遍历时的工作量,有效的提高了数据识别结果的准确度。另外还采用了一种新奇的方法计算阈值,给出权值,使得划分数据类时更有效率,同时还将一维数组变换成二维数据集合,然后利用图聚类的方式划分数据相似对,十分有效的提高的算法的精确度。最后在实验验证过程中从自动录入数据和人工随机生成数据两个方面进行测试,多方面验证了DRBB算法的可行性,相信在以后需要处理海量数据进行数据识别时,随着该算法的日益完善,必会得到广泛的运用,发挥其价值所在。

参 考 文 献

[1] 王鹏. 走近云计算[M]. 人民邮电出版社, 2009:75-78.

[2] 田秀霞,周耀君,毕忠勤等. 基于Hadoop架构的分布式计算和存储技术及其应用[J]. 上海电力学院学报,2011(01).

[3] 查道贵,许彩芳,陈伟. 云计算平台下数据挖掘算法研究[J]. 信阳农林学院学报,2017(01).

[4] 王宏志,樊文飞. 复杂数据上的数据识别技术研究[J]. 计算机学报,2011(10).

[5] 江务学,张璟,王志明. MapReduce并行编程架构模型研究[J]. 微电子学与计算机,2011(06).

[6] 许艳茹,王玉珍. 基于动态阈值的协同过滤算法研究[J]. 邵阳学院学报(自然科学版),2017(05).

[7] Cohen w w, Richman  J. 对学习和匹配集群高纬度数据集的数据集成的知识发现和数据挖掘.New York:ACM, 2002:475-480.

[8] 温程. 并行聚类算法在MapReduce上的实现[D]. 浙江大学,2016.

[9] 曹恒瑞,曹展硕. 一种基于Hadoop平台的分布式数据检索系统[J]. 软件导刊,2017(4).

[10] Arasu A, ReC, Suciu D. Laege-scale deduplication withconstraints using dedupalog //Proc of the 25th IEEE Int Confon Data Engineering(ICDE:09). Piscataway, NJ:IEEE.

[11] 肖雪平,倪建成,曹博. 基于Map-Reduce模型的BCkmeans并行聚类算法[J]. 电子技术, 2016(05).

[12] K pcke H, Thor A. Evaluation of entity resolution approaches on real-world match problems.Proceeding of the VLDB Endowment. 2014, 3(1/2):484-493.

致  谢

本次毕业论文设计离不开董国钢老师的指导和帮助,他在忙碌的教学工作中抽出时间来审查、修改我的论文,对于我顺利完成这次毕业设计起到了关键性的作用,在此谨向董国钢老师致以诚挚的谢意和崇高的敬意,还有所有教过我的老师,他们严谨细致,他们循循善诱的教导和一丝不苟的思路给予我无限的启迪。

我还要感谢我的母校武汉生物工程学院,以及在大学四年的学习和生活中给予我关心和帮助的朋友、老师和同学们,感谢他们为我提出的建议和意见,正是因为他们的支持、鼓励和帮助,我才能充实的过完了四年的大学生活,他们让我成长了许多,教会了我专业的知识和做人的道理,让我更加成熟。

,

课程设计报告

(项目设计说明书)

课    程:

题    目:

学    院:

专业班级:

设计小组:

成员名单:

(不超过8人)

指导教师:

时    间:


设计小组及成员分工介绍

设计小组简介:

各成员基本情况及分工一览表:

学号

姓名

专业特长

在项目中的作用(或角色)

自评分/组长评分


目 录

摘 要 II

关键词 II

Abstract III

Key words III

1 系统需求分析 1

(可根据需要展开为二级乃至三级标题,格式如下,后同,此行在正式课程设计报告中不要)

1.1 1

1.2 1

1.2.1 2

1.2.2 3

2 系统功能分析与模块构成 *

展开的二级乃至三级标题,以实际的标题代替

3 系统文件组成 *

展开的二级乃至三级标题,以实际的标题代替

4 数据库分析与设计 *

展开的二级乃至三级标题,以实际的标题代替

5 主要功能模块的设计与实现

5.1 模块一 *

5.1.1 (前端)界面设计与实现 *

5.1.2 (后台)程序设计与实现 *

5.1.3 联调测试 *

5.1 模块二 *

5.2.1 (前端)界面设计与实现 *

5.2.2 (后台)程序设计与实现 *

5.2.3 联调测试 *

6 系统部署及使用注意事项

6.1 系统部署(上线发布) *

6.2 系统使用注意事项 *

7 结论 *

参考文献 21

正文文字与段落格式示例(论文内容与此次设计无关,请忽略):

基于大数据的数据识别算法在文档搜索中的应用

摘 要

数据识别是筛选数据,对数据进行实时监测与鉴别的一项关键技术,能有效提高数据及反馈信息的质量,其目的在于识别出数据在表示时的多样性,以及对象映射数据的重复性。随着大数据应用的越发广泛,基于大数据的数据识别便应运而生。因此,在现阶段互联网发展的基础上,笔者给出了一个基于大数据的数据识别算法,该算法先是利用物体在数据库中的属性值进行比较和筛选,然后利用聚类算法进行数据归类和匹配,输出结果后在Hadoop平台上对真实数据集和人造数据集进行了比较,利用实验结果验证算法的可行性与有效性。最后,将该算法应用到文档搜索中,当需要搜索某个信息时,只需搜索某个关键词,利用该算法的特性自动匹配。

关键词

大数据;数据识别算法;文档搜索;应用

The Application of Data Recognition Algorithm Based on Big Data in Document Search

Abstract

Data recognition is a key technique for screening data、real-time monitoring and identification data which can effectively improve the quality of data and feedback information,Its purpose is to identify the diversity of data in representation and the repeatability of object mapping data.with big data applications more widely, the data recognition based on big data then arises at the historic moment. Therefore, based on the current development of the Internet, a data recognition algorithm based on big data (map-reduce) is presented. The algorithm first compares and filters the attribute values of the objects in the database, and then uses the clustering algorithm to classify and match the data. After the output results were compared between the real data set and the artificial data set on the Hadoop platform, the feasibility and effectiveness of the algorithm were verified by experimental results.Finally, the algorithm is applied to document search. When you need to search for information, you only need to search for a keyword and use the characteristics of the algorithm to automatically match.

.Key words

Data identification;Big data;hadoop;Map-Reduce


1 前言

现实世界中的物体在信息世界中以数据的形式存在,当面对来自不同数据源的数据以及对其进行存储和转换时,由于同一个对象可以由不同的数据表示,同时一个数据也可以表达现实世界中不同的物体,这些现象导致了数据质量的低下,尤其是把大数据平台上各个数据源统一为一个整体进行相关操作时,此类问题就尤为突出。因此,为了有效处理信息,提高数据的质量,以便准确识别不同物体所对应的数据表现形式,需要一种能够进行数据识别的算法。在大数据中数据表示不一致的情况更加普遍,所以数据识别技术在大数据中具有更为广泛的应用。

基于大数据的数据识别指的是将来自不同数据源的数据根据属性值和记录名,进行筛选匹配后,将表示同一物体对象的数据聚类在一起划归为一个整体,然后去重,使数据对象在信息世界中存在唯一数据值。导致数据质量下降的主要原因是数据的冗余和数据的重名两个问题,所以要实现这个功能,必须从这两方面入手。冗余是指物体在用数据表示中存在多种形式,就像妻子,在表达时可表示为“老婆”或是“内人”,重名是指多个物体对象被同一个名称所表示,就像一个名为“张明”的老师,在记录中可能有多个人叫张明,当面对这种情况时,可以用两种方法进行相关处理:冗余排查和重名聚类,冗余排查致力于解决冗余的情况,构造一个函数,此函数判断对象名的相似度,得到的值与所给出的阈值进行比较,以此将相似度高的对象归为一类。重名聚类致力于解决对象的重名情况,利用聚类算法,判断相同名称的不同对象的相似度。但是,由于算法本身的局限性,这两个类方法目前还不能真正意义上解决问题,尤其是面对海量数据时。为了解决这个问题,采用基于大数据的数据识别的算法,而要处理大数据,必须得运用云计算技术,通过利用分布式的大规模服务器集群处理海量数据,而Hadoop平台分布式系统基础架构正好满足了可以让任何一个用户不需要知道最基础的架构和细节,依旧能利用平台高速计算和存储的特点解决问题。该算法通过构建数据库列表记录索引表,在记录索引上进行数据处理,并通过图聚类方法对数据进行有效划分,最后得出结论。此篇论文设计主要有几点意义:

1) 目前为止,能够处理基于大数据情况下做到处理数据的冗余和重名的算法,少之又少,而本篇论文正好能解决这个问题,在基于Hadoop平台下采用Map-Reduce框架实现数据识别。

2) 实现了处理海量数据的实时过滤抽样算法和对过滤结果进行计算阈值的算法,二者结合使数据结果校验更加准确,极大降低了其他因素对结果的影响。

3) 此算法在得出识别结果过程中,将所处理的记录都进行了概率计算,增加了每条记录的重复利用性,更加方便了数据的二次处理。

4)在本篇论文最后,通过进行实验,将该算法应用到文档搜索情景中,实现在海量数据面前,能够做到只需输入关键字,自动匹配出最佳的信息。

2 相关工作和背景

2.1 相关工作

对于数据识别的相关研究早已在计算机界开展多时。起初,处理数据的数据量越来越庞大的问题一直难以解决,早期的研究主要从处理单纯的数据重复的问题入手,现在提出一种可以利用提供的计算记录相似度的基于相似度的函数和基于聚类划分的函数。前者主要通过对比两个数据之间的关联程度和比较阈值,来判断两个数据是否一样。与此同时选取自定义的数据转换字符串进行识别,增加了数据识别度,另外采用相似函数中的自动执行方法通过机器学习获取一个数据池,数据池可以准确地对比记录的各项属性值将属性值最接近的多个记录归为一个对象。基于聚类的方法是根据自定义的标准来判断记录是否可归为一个数据类。另外文献[1]提出了一种可声明、不受基础架构影响、能够定义数据识别标准的语言Deduplog。文献[2]利用不同标准的约束条件选择识别数据的规则,同时结合了最大期望(EM)算法[3]和基于超松弛迭代的标签传播算法[4]的自主学习方法,提高了数据准确度,根据映射中的主键和函数依赖,描述同一个物体在数据库中所映射的不同记录的标准。

在数据识别系统方面,文献[5]提出了采取C4.5算法(分类决策树算法)生成数据池以实现对数据识别过程中的数据质量。文献[6]提出的数据清洗系统AJAX,在AJAX中有一种在清洗数据时定义的数据识别标准,以此达到了了基于标准的数据识别技术。文献[7]提出了一种可交互的数据清洗系统,此系统可以将来自不同数据源的数据进行清洗可转换,可以实时的人工修改数据识别标准来识别数据。

现阶段存在多种可以识别数据有效性的算法,其算法原理大多只能适用于少量数据时的数据对象,而能基于大数据情况下的数据识别算法几乎没有,只有极少数做过初步尝试,而且他们只能对字符串及其关系元组进行操作,同时对大数据情况下的异构数据、非结构化数据的识别技术也十分缺乏,更何况这些算法无法保证识别出的结果的质量。

2.2 Haddoop平台

Hadoop是基于大数据的分布式处理的基础架构系统平台。其包含底层的HDFS和上层的Map-Reduce,HDFS是高度容错性的分布式文件系统,负责处理集成的大容量文件,这些文件都被存放在Hadoop的数据结点上,这些结点包括1个NameNode节点和多个DateNode节点,NameNode节点主要负责管理HDFS的文件名空间和外部访问;DataNode主要负责存储文件的Block部分,同时负责响应外部的读写请求[8]。

而 Map-Reduce由1个自主管理的JobTracer(存在于主节点上)和多个 TaskTracer(存在于集群节点上)组成,其中在 TaskTracker上运行的任务由JopTrscker管理和调度。

Map-Reduce是一个运用于大规模数据集运算的编程模型,专门针对海量数据集的并行运算和分布式任务处理[9]。其中Map-Reduce主要分为两个部分:映射(map)部分和规约(reduce)部分,每个部分都以键-值对<key-value>的形式存在用于输入和输出。map函数把一组键值对(key-value)映射成一组新的键值对,然后发送给并发的Reduce(归约)函数,保证所有映射的键值对都是同一个共享的。Reduce函授接收键值对后将其转换为<key,value>然后缩减为一个键值对列表。

3 基于Map-Reduce的数据识别算法

本节主要写出来基于Map-Reduce部分的大数据数据识别算法,该算法以一个具备大数据特点的文件作为输入,然后由Map-Reduce函数处理后输出多个识别过程中被判断为相似的文件的集合文件,这个过程可分为4个步骤:数据的初步聚类、数据的相似度识别、基于图聚类的对象聚类、数据对象的相似度的概率计算。算法在Hadoop平台上采用Map-Reduce框架,在此基础上写出了面对海量数据的抽样算法、阈值计算策略和基于图聚类的对象聚类算法。

3.1 数据的初步聚类算法

众所周知,现实世界中的每一个物体,在信息世界中用数据表示时,经常出现不同记录代表同一对象,这些记录的属性都拥有许多相似之处。故而,选择记录的属性值为判断标准,将每个对象的属性值构造倒排索引表,把每一个相似的记录进行初步的划分,这样一来就十分有效的减少了数据的冗余和进行数据比较所需的次数[10]。为了更加直观的表述此过程,会在下面说明的时候用记录和数据来表示,并且会把属性值十分相似的记录称作类似对象集。在L中,把‘张’定义为L中的一个数据对象,这样一来就可以用ID来表示这个对象。然后把L中所有元素创建一个集合,集合中的元素的属性值都用标记出来,设集合名为P,其属性为Pi,在此基础上再次构造一个名为PLi的倒排索引表,故而在索引表中的属性值Pij、pi都属于对象集合。把PE称作初步划分,每一次划分都要进行一次Map-Reduce过程。

图1 初步聚类算法流程图

过程1.BuildSE

输入:E和Pi;输出:PLi

① Map部分

输入:<key=行号ID,value=属性值>

处理:令Pij为key,对象Li的ID为value,然后映射,若一个对象不止一个属性值,得先把属性值拆成多个后才能映射

输出:<key=Pij,value=Li>

② Reduce部分

输入:<key=Pij,value=Li>

处理:以Pij关键值进行规约

输出:<Pi1,<Li1,Li2…>>

<Pi2,<Li1,Li2…>>….

从上面的程序中可以看出,采用先映射属性值,利用map函数完成此过程,映射后将数据处理时出现的冗余数据进行规约,在reduce函数中完成,利用这个算法,可以做到以倒排索引表为输出,将记录表中的所有属性输入到HDFS中等待二次处理

由于利用上述算法将重复的属性数据归为一个对象类,并且将这些属性值以倒排索引表的形式存,让这些属性值都对于一个数据所表示的对象,这样一来在索引表中它们都属于一个索引,于是便实现了数据的初步分类。这一步对下面的识别工作做了非常好的铺垫,使得进行数据识别时不需要过多的对每一个属性进行识别,只需在倒排索引表中找到对应的代表同一属性的数据,大大简化了工作量。

3.2 数据的相似度识别

数据识别算法主要可以大致分为3个阶段:数据样本采集、数据阈值比较聚类以及数据识别.其中数据样本采集和数据阈值比较聚类2个阶段可以不用采用Hadoop的多线程并行计算方式,只需单线程的计算便可完成,而数据识别得利用Map-Reduce框架的并行运算和高容错的特点实现。

3.2.1 数据样本采集阶段

由于所面对的往往是海量数据,这些数据不仅大多是非结构化数据而且来自于不同的数据源,故而要想取得阈值必须先在数据库中抽出一部分数据作为样本获取阈值。获取样本可以定义这样一个方法:从一个十分庞大的元素集合中抽取一部分元素作为样本,假设集合中有N个元素,而抽取数量为k,现在规定k个元素中存在多对属性值十分接近的数据,设个数为m。由于所要处理的数据不断的实时更新且数量十分庞大,在进行抽样时无发做到一次性让数据进入内存中,但前面说到要保证抽取的元素中又要出现m个属性值相似的数据,因此必须采取一种可以做到实时抽样并自动识别数据有效性的抽样算法:将其取名为DESampling抽样算法,DESampling算法的原理是先构造一个可供抽样的抽样采样池SamplingPool,这样一来数据进入抽样采样池中,并且不断实时更新,这样一来可以在其中按照要求抽取样本。

图2 抽样算法流程图

该算法伪代码:

算法1.DESampling 输入:关系表E;输出:集合S

① sim Pair=0;

② for each entity Ei∈E do for each entity  Ei∈E do

③ for each entity S,in SamplingPool do

④ if similarity(Ei,Sj)==true then

⑤ SamplingPool[Sj].setID.insert(Ei);

⑥ simPair +=SaPair+=SamplingPool[Sj].size;

⑦ for each entity Ck,inSamlingPool do

⑧ SamplingPool[Ck].jmp--;

⑨ end for;

⑩ go to②;

end if

end for

If SamplingPool.size==MAXSIZE then

D=min(SamplingPool.jmp);

SamplingPool.remove(D);

end if

for each entity Ft in SamplingPool do

SamplingPool[Ft].jmp--;

End for

SamplingPool.insert(Ei,null,MAXJMP);

if simPair<MAXPAIRT then

goto②;

Else

Break;

Endif

Endfor

Output SamplingPool;

由上述算法可以看出,第一步是构造了一个抽样采样池SamplingPool,进入池中的元素都会为其配备两个标记,其中一个用于表示它所归属的集合,另一个用了表示它在集合中出现的次数setID。最后一步在池中声明一个全局变量simpair记录池中相似度较高的数据对jmp,设其值为0.完成这些工作后,先将池中的元素进行遍历,找到两个属性值相似的数据,然后将它们纳入到一个数据集合中,然后更新池中的记录,然后把所有在池中的元素的jmp自减1,继续按照算法执行步骤往下执行。相反,若是没有找到属性值相似的数据对,则更新一遍数据采样池中的数据,另外若是采样池数据存储量达到了上限,则采用清除活跃度低的元素,然后重新收入新的数据,将那些相似个数少的元素清理掉,同时将池中原有所有元素的jmp自减减一,最后若是达成要求,则执行完所有步骤,不然回到算法第二步继续执行,最后输出结果。同时,该算法的时间复杂度为O(n),空间复杂度为O(m n)。

3.2.2 数据阈值比较聚类阶段

要想判断抽取出的样本属性值是否相似,可以比较其阈值,而要想得出样本数据的阈值,本文给出了一种计算阈值的方法:将数据的相似度划分为强相似(HL)和弱相似(LL),然后求出两个类的界限区域的重复程度,可以用象限上的两个圆来表示两个类,圆的面积代表类中的数据集合,然后求出可以覆盖两个圆的的最小区域,这个区域就是其阈值THES。

定义1.覆盖区域。设象限中有一集合V,若有一个圆可以将这个集合所代表的圆覆盖住,同时有且只有一个这样的圆的半径最小,则若圆C为覆盖V中所有点的半径最小的圆,则称圆C为点集V的最小覆盖区。

图3 阈值计算流程图

由此可知,现在设计一个算法TMC:

算法2.TMC

输入:HL和LL;输出:THES

① for each value t in HL  do

② P.x=t+rand();

③ P.y=t+rand();

④ H.insert(P);

⑤ Endfor

⑥ For each value s in LL  do

⑦ Q.x=s+rand();

⑧ Q.y=s+rand();

⑨ L.insert(Q);

⑩ Endfor

<rH,pH>=computer_mcc(H);

<rL,PL>=computer_mcc(L);

If |PH-PL|>rH+rL then

R.x=PH.x+PL.y;

R.y=PH.y+PL.y;

THRES=(R.x+R.y)/2

Else

R=computer_inj(PH,RH,PL,rL);

THRES=(R.x+R.y)/2;

Endif

Endif

Return THRES;

Endif

Return THRES;

在算法前5步中,为的是将一维的的两个代表属性值现实程度的点设为二维的点,同时给出在此基础上预设的离散点,然后将他们两个分别归到HL和LL,在后面的步骤中提高Compute_mcc函数求出THRES,然后根据两个圆的位置分别求出最终的阈值:相交:THRES=相交弦与两个圆连线相交的点的坐标(x,y),然后x和y相加的和除以2,相离:两个圆的圆心的连线的中点坐标(x,y),若相切则取切点的坐标(x,y),同样的求出x与y的和的二分之一。弃值便为所需的阈值。另外该算法的时间复杂度为O(n)。

3.2.3 数据识别阶段

在现实应用的时候,往往由于表示数据的属性值的多样性,对数据识别造成了非常大的不便之处,为了解决这个问题,想到了一个新奇的方法来解决识别数据时出现的数据与实体对象匹配的问题。那就是为每个数据的不同属性设置一个权重Wi,然后在匹配时不用在对数据直接进行操作,而是只需对所设定的那个权重值进行判断,十分有效的提高了识别准确度,大大降低了属性多样性对识别过程的干扰。在完成这些工作后把在抽样和阈值计算过程中筛选的数据进行一次全面的遍历,然后再根据权重值和阈值之间的对比算出数据的相似度。

图4 数据识别流程图

过程2.EntityCount

输入:倒排索引表SE;输出:数据出现的频率和相似对的频率。

① map部分

输入:<key=Aik,value=<Ei1,Ei2>>

处理:将SE中的的数据和数据对作为key,value=1,进行映射。

输出:<key=Ei,value=1>,…,<key=Ei,Ej,value=1>….

②Reduce部分

输入:<key=Ei/<Ei,Ej>,value=1>

处理:把输出的key进行聚合操作,然后记录数据出现的频率和相似对的频率。

输出:<key=Ei,value=Ti>,…,

<key=Ei+Ej,value=Tij>….

完成第一步过程后,还需要在进行两次重复上述的步骤,把输出的结果进行聚集。

过程3.EntityGather1

输入:EntityCount中最终输出的数据及其相似对的频次。

输出:首个数据及其数据对出现频次。

① map部分

输入:<key=Ei/<Ej>,value=Ti/Tij>

处理:将Ei作为key,value=<<Ei,Ej>,Tij>,然后映射,此外单个的数据和频次直接输出。

输出:<key=Ei,value=Ti>,…,

<key=Ei,value=<<Ei,Ej>,Tij>>….

② Reduce部分

输入:<key=Ei,value=<<Ei,Ej>,Tij>>/Tj>

处理:按key归类,把聚合后的结果依次输出,将数据结果中首个数据为Ei的数据作为输出标准。

处理:将聚集结果拆分后输出。

输出:<key=Ei,value=Ti>,…,

<key=Ei,value=<Ti,<<Ei,Ej>,Tij>>>….

过程4.EntityGather2

输入:集合中首个数据及其数据对对出现频次。

输出:集合中出现的第二个数据及其数据对的频次。

① Map部分

输入:<key=Ei,value=Ti/<Ti,<<Ei,Ej>,Tij>>>;

处理:key=数据组中的第2个数据,value=Ei的频次和数据组Ei+Ej的频次,进行映射,单个的直接输出。

输出:<key=Ei,value=Ti>,…,

<key=Ej,value=<<Ei,Ej>,<<Ei,Ej>,Tij>>….

②Reduce部分

输入:<key=Ej,value=<<Ei,Ti,<<Ei,Ej>,Tij>>

处理:根据key来聚合,把所有输入的数据对判断其第二个数据是否为Ej,若是则输出其结果和频次,然后将其结果分步输出:

<key=<<Ej,Tj>,<Ei,Ti>,value=<<Ei,Ej>,Tij>>….

经过上述处理后,在此基础上进行三次同样的操作,得出准确的结果,此结果就是该对象属性下的数据组出现的频次。例如某个属性Am包含数据组<Ei,Ej>的相似度Sm定义为:

                             式(1-1)

另外计算该属性的总体平均相似程度similarity(Ei,Ej)时,需要将每个数据的属性的值求出其加权平均,定义为:

                  式(1-2)

通过这些计算,得出的结果再进行一次Map-Reduce就可以得到最终的结果。该结果就是所需的整体相似度。

过程5.ComputeSimilarity

输入:THRES,权值和数据组

<key=<<Ej,Tj>,<Ei,Ti>>,value=<<Ei,Ej>,Tij>>;

输出:属性值相似的数据组和其程度。

① map部分

输入:<Key=行号,value=key>;

处理:key=Ei+Ej,value=Sm,映射。

输出:<key=<Ei,Ej>,value=Sm>,…,

<key=<Ei,Ej>,value=Sn>….

②Reduce部分

输入:<key=<Ei,Ej>,value=Sm>,…,

处理:按照key下的<Ei,Ej>求出整体相似程度,然后输出其结果大于之前计算得出的阈值的结果。

输出:<key=<Ei,Ej>,value=similarity(Ei,Ej)>…。

在完成上述的处理之后,通过构造一个利用初步聚类创建的对象各个属性倒排索引表,然后在此基础上提供了一个EntitySim框架。以保证接下来工作的正常开展。

输入:SE,属性权重和阈值。

输出:数据相似对集合文件。

① for each Attribute Ai  in  A do

② set Wi;

③ EntityCount(Ai);

④ EntityGather 1(Ai);

⑤ EntityGather 2(Ai);

⑥ endfor

⑦ ComputeSimilarity();

在①~⑥中,每个数据的不同属性设置一个权重,然后在匹配时不用在对数据直接进行操作,然后再进行三次 Map-Reduce记录下结果中的数据组的频次,最终在此基础上在此进行一次Map-Reduce得出结果。

3.3 基于图聚类的对象聚类

通过3.2阶段的操作后,可以看出将结果用集合的形式表示,故而更近一步可以将结果的集合表示成图聚类形式。为此给出了一个算法:GraphDivision,并且给出了比较详细的描述,在该算法中让N(V)为顶点V的相邻结点的集合,同时V∈N(V)。

图5 图聚类划分算法流程图

算法4:GraphDivision

输入:聚类图G=(V,E),人为自定义参数λ

输出:划分后的结果D={G1,G2,....GN}

Gi={Ej|Ej为一个聚类中的元素}

① for each E=(a,b) do

② if |N(a)∩N(b)|≧λ|N(a)∪N(b)|  then

③ merge(a,b);

④ update=true;

⑤ endif

⑥ if update=true then

⑦ goto②;

⑧ endif

⑨ endfor

⑩output G;

上述步骤中,通过反复执行图聚类的划分方式对划分的某个类图进行测试其准确性,通过上述的算法可以看出假设某条边(a,b),代入到|N(a)∩N(b)|≥λ|N(a)∪N(b)|中.若是符合这个标准,就将此边用一个顶点a’表示,设a’={a,b}{a,b}.然后对其他每条边都执行此次操作知道不符合这个条件为止,将结束后通过条件的点作为划分结果,一个点代表一个类。另外算法的时间复杂度为O(d×|E|)。

3.4 数据对于对象的相似度的概率计算

接下来,用采取了一个计算概率的方式,通过此方式可以计算出每个数据大概所所属的类别。在2.3中通过图聚类的方式知道了通过点与点可以得出数据在某个类中的可能性。设分类=Gi,图聚类的整体平均相似度=Pi,现有某一点A,SA-X为A的Pi,那么A属于此数据分类的的概率为:

                  式(1-3)

然后提供一个概率计算的算法ComputePro。

算法5:ComputePro

输入:划分到同一类的数据组集合G={G1,G2,....GN};

输出:G的概率。

① for each Gi in G do

② Pi=Compute Average degree(Gi);

③ for rach A in Gi do

④ SA-x=Compute Average degree(A);

⑤ PA=SA-X/Pi

⑥ end for

⑦ endfor

算法5先计算出Gi的整体相似度均值,然后算出了点A和它相连接的边的相似度均值,最终得出了其概率。

在概率计算过程中对于顶点数量为n、边数量为m的划分,计算其中所有顶点概率的最坏时间复杂度为O(m2+mn)。

4.实验及应用

在上述的步骤中完成了数据识别的DRBB算法,现在需要对该算法的可行性进行测试。于是用Java写出该算法的具体步骤,然后在ubuntu12.04.1操作系统上的Hadoop运行。由于该算法的可行性还是未知状态,为了保险起见采用多种方式进行对比和测试,先是从网络上提取已有的海量数据进行测试,得出   全套毕业设计论文现成成品资料请咨询微信号:biyezuopin QQ:2922748026     返回首页 如转载请注明来源于www.biyezuopin.vip  

                 

打印本页 | 关闭窗口
本类最新文章
选择榨汁机的诚实指南 通用回归神经网络在声呐目标分类中 工艺规程制订与并行工程
储油罐的变位识别与罐容表标定 DVD租赁优化方案 车灯线光源的优化设计方案
| 关于我们 | 友情链接 | 毕业设计招聘 |

Email:biyeshejiba@163.com 微信号:biyezuopin QQ:2922748026  
本站毕业设计毕业论文资料均属原创者所有,仅供学习交流之用,请勿转载并做其他非法用途.如有侵犯您的版权有损您的利益,请联系我们会立即改正或删除有关内容!