基于FTP的数据挖掘系统核心算法的设计与实现毕业设计论文.docx
- 文档编号:25378842
- 上传时间:2023-06-07
- 格式:DOCX
- 页数:39
- 大小:312.12KB
基于FTP的数据挖掘系统核心算法的设计与实现毕业设计论文.docx
《基于FTP的数据挖掘系统核心算法的设计与实现毕业设计论文.docx》由会员分享,可在线阅读,更多相关《基于FTP的数据挖掘系统核心算法的设计与实现毕业设计论文.docx(39页珍藏版)》请在冰豆网上搜索。
基于FTP的数据挖掘系统核心算法的设计与实现毕业设计论文
本科毕业设计
题目:
基于FTP日志的数据挖掘系统
-核心算法的设计与实现
基于FTP日志的数据挖掘系统-核心算法的设计与实现
摘要:
随着高校的逐步推进网络化,大量日志存在高校各个应用服务中,绝大部分得不到有效利用。
数据挖掘技术的出现,使这些沉淀了很久的数据信息得到了有效的利用,并且为未来得出许多合理的预测和解决方案。
我们利用学校的FTP服务器日志,实现了一个基于FTP日志文本的数据挖掘系统,研究学生的学习情况和老师的教学情况。
本系统是在基于分布式计算思想基础上,采用javasocket技术和多线程技术实现整个系统框架,挖掘算法采用的是相关联算法,对课程相关联性的挖掘。
本文实现了系统的一部分功能,主要包括核心算法和算法支撑框架(系统的框架)。
我实现的挖掘算法是课程相关联算法的功能。
算法的支持框架的功能主要包括文件传输、任务定时执行、差错检测和纠正等。
关键字:
关联规则;数据挖掘;FTP日志;分布式
FTPlog-baseddataminingsystem
—DesignandImplementationofcorealgorithm
Abstract:
Asuniversitiestopromotenetworking,alargenumberoflogscollegeapplicationservices,thevastmajorityisnotusedeffectively.Thedataminingtechnology,theeffectiveuseofprecipitationdataforalongtime,andtodrawreasonablepredictionandsolutionsforthefuture.
Weusetheschool'sFTPserverlog,anFTPlogtext-baseddataminingsystem,theresearchstudentlearningandteachersteaching.Thissystemisbaseddistributedcomputingbasedontheidea,ajavasockettechnologyandmulti-threadingtechnologytoachievetheframeworkoftheentiresystem,miningalgorithmisassociatedalgorithm,ofcourseassociatedmining.
Partofthesystem,includingthecorealgorithmandalgorithmsupportframe(framework).Irealizedminingalgorithmscoursesassociatedalgorithm.Thealgorithmssupportframeworkfeaturesincludefiletransfer,tasktimingexecution,errordetectionandcorrection.
Keywords:
Associationrules;datamining;FTPlog;Distributed
第1章绪论
本章主要阐述了课题的背景和意义以及国内外研究现状,并概述了课题的主要研究内容。
1.1课题研究背景及意义
随着网络的快速发展,全球信息的数量每二十个月翻一番。
人们可以毫不费力地得到自己想要的信息,比如我们打开浏览器上网,就可以看到今天的新闻;我们打开在线视频,就可以观看自己喜欢的电影;我们XX一下就可以搜索到自己想要的信息;另外,我们还可以在网上学习相关技能以适应工作的需要等。
大量的信息充实了我们的生活,给我们的工作带来极大的方便。
然而,信息的增长远远快过我们对信息的需求,现实中,我们真正利用到的信息的数量占总的信息数量只有很少的比例,在我们背后,还有很多信息沉淀着,甚至被当成垃圾我们被清除掉。
数据挖掘技术的出现,使这些沉淀了很久的数据信息得到了有效的利用,并且为未来得出许多合理的预测和解决方案。
数据挖掘广泛应用于银行、电信、保险、交通、零售等商业领域。
数据挖掘可以帮助企业对数据进行微观、中观乃至宏观的统计、分析、综合和推理,从而利用已有数据预测未来,帮助企业赢得竞争优势。
英国电信通过数据挖掘研究新产品推荐方式,发现通过直邮的方式向客户推荐新产品的回应率提高了100%;GUS日用品零售商店需要准确的预测未来的商品销售量,降低库存成本,通过数据挖掘的方法使库存成本比原来减少了3.8%;美国国内税务局需要提高对纳税人的服务水平,通过数据挖掘合理安排税务官的工作,为纳税人提供更迅捷、更准确的服务等。
目前,很多高校或者小型企业的很多数据存在浪费现象,比如日志文件,很多时候都是被当成垃圾文件被清理掉。
现在的高校都网络化,大量的应用系统存在每个高校的网络中心服务器里面。
同时,这些应用系统每天也产出大量的日志文件,记录着每个应用系统的各种状态,大多高校对这些日志文件的做法是过一段日子就把这些日志当成垃圾文件清除,日志文件得不到有效的利用。
同样,在我校也存在这样的现象,所以我们针对我们学校的ftp服务器的日志文件,设计并实现一个数据挖掘系统,通过对日志文件的数据挖掘得出老师学生使用ftp的情况,更主要的是通过计算机分析的手段提出相关的人性化教学建议,让师生间更利于及时得到信息反馈。
1.2国内外研究现状
数据挖掘又称为知识发现(KDD)[1],KDD一词于1989年举行的第十一届国际联合人工智能学术会议上提出。
在这之后,很多有关数据挖掘的专题讨论会和国际学术会议陆续召开,为数据挖掘的发展指明了方向,数据挖掘技术得到突飞猛进的发展,取得了丰硕的成果。
1.2.1国外研究现状分析
目前,国外对数据挖掘的研究取得了很大的进展。
比如对数据挖掘算法的改良表现在对贝叶斯方法和Boosting方法的研究和改进提高[2]。
数据挖掘技术与其他技术的相互结合,比如数据仓库,它将数据挖掘和数据库相结合在一起。
许多计算机公司和研究机构都非常重视数据挖掘的开发应用,IBM和微软等一些大型公司相继成立有关数据挖掘研究中心。
美国是全球数据挖掘研究最繁荣的地区,并占据着研究的核心地位[2]。
国外有很多知名数据挖掘软件。
比如SPSSClementine是SPSS的数据挖掘应用工具,它人性化的用户图像界面和多种挖掘分析技术结合起来,用户可以轻松操作软件进行数据挖掘。
此外,还有Angoss软件公司开发的具有灵活性高的KnowledgeStudio软件,HNC公司开发的用于信用卡诈骗分析的DatabaseMiningWorkstation等不同领域的数据挖掘软件[2]。
1.2.2国内研究现状分析
与外国相比,国内对数据挖掘的研究正处于发展阶段,我国对数据挖掘的研究大部分处于科研阶段,主要的研究方向集中在数据挖掘的学习算法、理论方面以及实际应用[2]。
国内一些新兴的数据挖掘软件主要包括由中科院计算技术研究所智能信息处理重点实验室开发的多策略通用数据挖掘平台MSMiner[3],由上海复旦德门软件公司开发的具有自主知识产权的数据挖掘系统DMiner[2]等。
1.3本文主要研究内容及意义
本文主要研究的内容是基于ftp日志文本的数据挖掘系统的核心算法的设计与实现,其中主要是数据挖掘系统的整个框架设计与实现,并且在此基础上对课程关联算法的设计与实现。
1.4本章小结
本章主要介绍本课题的研究背景以及研究意义,本课题国内外研究现状,本文的主要研究内容和方法以及本文的篇章结构。
第2章基于FTP日志文本的数据挖掘的研究
2.1数据挖掘
数据挖掘就是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中,提取隐含在其中的、人们事先不知道的,但又是潜在有用的信息和知识的过程[2]。
数据挖掘最常见的算法主要包括神经网络、决策树、遗传算法、粗糙集、模糊集、关联规则。
其中,关联规则挖掘是帮助发现大量数据库中项集之间的关联关系[2]。
Apriori算法是其中一个经典算法之一。
2.2基于FTP日志文本的数据挖掘
数据挖掘过程一般包括数据采集、数据预处理、数据挖掘以及知识评价和呈现。
2.2.1数据采集
FTP日志文件是在远程的一台服务器里面,随着时间的推移,日志文件是在不断地增加。
我们要在服务器里面启动一个定时检查有没有新日志文件产生的服务程序,程序检查到新文件后实时地传输给系统服务端处理。
在数据挖掘整体过程中,海量的原始数据中存在着大量杂乱的、重复的、不完整的数据,严重影响到数据挖掘算法的执行效率,甚至可能导致挖掘结果的偏差。
为此,在数据挖掘算法执行之前,必须对收集的原始数据进行预处理,以改进数据的质量,提高数据挖掘过程的效率、精度和性能。
数据预处理主要包括数据清理、建立标准库等。
FTP日志文件是已经具备有一定结构的数据,我们可以通过对FTP日志文件格式的解析,通过模式匹配判断出属于我们需要的数据,同时去除其他无用的或者错误的数据。
在对数据清理后,我们需要把初步加工的数据重新组织起来,建立一个有统一数据结构的标准库。
建立标准库实际上是建立符合我们数据挖掘算法提取数据的标准索引库,通过对原始数据的初步加工后,在以后设计算法的时候,我们就有一个统一的数据结构,便于我们设计出来的算法比较规范和简单化。
算法的规范和简单化也减低了数据的出错率,保证整个系统的稳定性。
2.2.2数据挖掘
在标准库的基础上,我们运行相应的挖掘算法进行数据挖掘。
我们研究的算法是关联规则,算法运行的结果得出的是课程之间的相关联性,具体情况下面篇章的内容。
2.2.3知识评价和呈现
我们在算法运行得出的结果通过web可视化界面显示报表,并且对其进一步分析,提出相关建议。
这是我们整个系统的最终目的。
2.3本章小结
本章主要介绍数据挖掘的概念、功能和常见算法,以及基于FTP日志文本数据挖掘的整个流程。
第3章核心算法支撑框架的研究
本核心算法底层支撑框架是基于分布式计算的,是核心算法的基础设施,主要包括核心算法支撑框架和数据库部分。
3.1基于分布式计算的思想
分布式计算是一门计算机科学,它研究如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分分配给许多计算机进行处理,最后把这些计算结果综合起来得出最终的结果[5]。
学校的公用FTP使用的用户群很大,主要包括教师和学生,每天的访问量也很大。
这样下来,日积月累,日志的数据量也相当大,这给数据挖掘带来一个挑战。
数据挖掘算法需要多层加工,步骤复杂,一台电脑的运行能力是有限的,如果是运行在单机版上,运行一次数据挖掘算法就需要花费很长的一段时间。
从分布式计算的定义来看,多台电脑相互合作运行数据是其一个重要的特点,如果采用多台机分任务同时运算,然后再把结果合并,这样的话,就可以提高运行效率。
本系统采用分布式计算方式来设计整个架构和挖掘算法。
3.2核心算法支撑框架的研究
核心算法支撑框架是整个系统的底层基础,负责数据处理任务安排和差错检测。
该框架的主要目标是设计成一个快速、稳定、有规范的处理流程,可扩展性的,有一定容错功能的框架。
同时,在此基础上实现挖掘算法,为后面其他算法的开发铺垫。
3.2.1文件的传输
文件的传输功能是分布式计算系统的一个基础设施。
文件的传输功能能够将文件发送给远程电脑,确保远程电脑能够获得数据源,正常处理数据;文件的传输功能将网络上各个节点的电脑都连接起来,共同完成任务文件的传送。
文件的传输功能要求出错率小,有相应的错误检测和排除机制。
传输的文件类型通常是任务文件或者数据源,这两种文件如果在传输过程中出错,都会导致目的节点无法运行程序,直接使整个任务程序瘫痪。
文件的传输功能要求传输速度要快,特别是对数据源,一般数据源的数据量都是比较大,分布式计算的本身就是为了加快运行速度而设计的。
所以文件的传输功能要确保数据源文件地快速传输,减少远程出来的等待的时间。
3.2.2任务定时调度
任务定时调度是整个框架,也是整个系统的指挥中心。
这一部分功能也是整个框架的核心部分。
没有了它,算法不知道如何去运行,无法确定下一步所需要的资源和处理功能。
所有的一切都必须经过它的调度才能运行,这里包括执行特定任务的线程和差错检测的线程等。
定时执行任务是任务定时调度的一个主要特性。
定时执行任务在这里的意思是说定时地检测下一步要执行的任务,准时地执行任务,充分地保证了任务按照设定的步骤运行,而不会出现混乱的局面。
任务定时调度也要求出错率低。
任务定时调度是基于多线程设计的,每个线程都必须在合理的时间获得合理的资源才能运行,必须防止线程混乱执行的局面,必须对出错的地方有相应的记录和处理。
3.2.3对可预知的出错纠正
这一部分功能是针对前面两个核心部分提出的,主要功能是针对远程电脑故障和本地线程无法执行带来的错误给予正确地纠正。
分布式计算系统最致命的缺点是网络不稳定,可能会造成系统的瘫痪,无法正确运行程序;本地多线程环境下,多线程无法按照流程运行同样也会造成系统不稳定。
针对这两个大问题,系统必须有实时记录和解决的功能。
3.3数据库的研究
数据库主要功能是数据处理的最终结果的存放、规则库的建立、系统功能的执行步骤情况记录、主机的情况记录等。
挖掘算法处理后的结果需要存放在数据库的算法结果表里面,字段主要包括结果的图表、结果提出的相关建议。
每台电脑的状态需要要有一张表来记录,每台电脑可以通过数据库增加新电脑记录,修改电脑的实时状态。
字段主要包括电脑的IP、电脑的状态。
整个系统是遵循一定步骤运行的,整个任务记录在一张表里,为任务调度器提供了一个调度的依据,同时,也实时地记录每个步骤的执行情况,包括错误信息。
字段主要包括目的地址、源地址、文件名、步骤、执行类型、完成状态、是否出错等。
3.4本章小结
本章介绍了基于分布式的数据挖掘系统框架和数据库等方面的需求分析。
第4章核心算法的设计与实现
经过上一章的需求分析,我们初步得出了整个系统的需求和各个功能模块,这一章主要的是数据挖掘框架各个功能和课程关联算法的设计与实现,并且详细地讲解每个部分的主要特点和主要代码。
4.1开发环境
本系统用java语言开发,java语言有高可靠性和跨平台的特点,保证了系统在绝大多数操作系统上安全无阻可靠地运行。
本系统用eclipse的集成环境开发,运用了lucene、JFreechart等开发框架和Apacheftpserver、ftp4j等类库进行开发,让系统更加稳定高效运行。
4.2文件传输器的设计与实现
4.2.1文件传输器的设计
文件传输器是用来对文件进行传输,传输器主要由客户端(传输源地址端)和服务端(传输目的地址端)组成,客户端负责将文件发送出去,而服务端则负责接收客户端发送过来的文件。
同时,为了减少文件传输的时间,我们还采用了文件的压缩和解压缩机制。
在客户端压缩文件,在服务端将接收到的压缩文件解压。
综合上述,传输器的工作流程是:
客户端将文件压缩好传输过去,服务端接收压缩文件并将其解压缩。
4.2.2文件传输器的实现
(1)基于Apacheftpserver开发的服务端
Apacheftpserver是一款基于高性能网络框架mina开发的,用java语言编写的ftp服务器软件。
本系统将Apacheftpserver嵌入到系统中使用。
(2)基于ftp4j开发的客户端
ftp4j是一个FTP客户端Java类库,实现了FTP客户端应具有的大部分功能。
可以将ftp4j嵌入到Java应用中,来传输文件,浏览远程FTP服务器上的目录和文件,创建、删除、重命名、移动远程目录和文件
(3)文件的压缩和解压缩机制
我们采用ZIP的压缩形式。
在java中要实现ZIP的压缩主要用到的是java.util.zip这个包里面的类。
类包中主要的类有ZipFile、ZipOutStream、ZipIntputStream和ZipEntry。
ZipOutStream是用来压缩文件的,ZipIntStream和Zipfile是用来解压缩文件的。
在java的Zip压缩文件中,每一个子文件都是一个ZipEntry对象。
所以,在压缩和解压缩的过程中,ZipEntry都会用得到。
压缩这一部分包括压缩目录和压缩文件,函数dirTopZip(StringbaseDirPath,Filedir,ZipOutStreamout)是用来压缩目录的,函数fileToZip(StringbaseDirPath,Filefile,ZipOutStreamout)是用来压缩文件的。
而zipFile(StringbaseDirName,StringfileName,StringtargetFileName)函数是对前面两个函数的嵌套使用。
详细代码情况附录一。
4.3任务定时调度器的设计与实现
4.3.1任务定时调度器的设计
在分布式环境中,任务的有序和准时运行是我们这次设计遇到的难题,任务定时调度器就是为了解决这一难题而设计的。
任务定时调度器包括定时调度程序和任务表。
定时调度程序每隔一段时间就会查询任务表一次,获取要执行的任务。
如果发现有任务要执行,则定时调度程序就会把相应的任务交给相应的线程处理,比如从任务表里面发现要建立标准库的任务,程序就会找到建立标准库相关线程,启动相关线程来完成这项任务。
如果没有发现要执行的任务的话,就每隔一段时间自动检测一次任务表。
在任务表里面,每个任务有自己的任务类型号,比如说建立标准库这样任务的类型号,在我们程序中用1来表示。
每个任务有若干个步骤,建立标准库这一任务的有压缩源文件、传输源文件、解压缩源文件、执行建库命令等步骤。
步骤也采用阿拉伯数字来表示,规定从0开始。
每个步骤有自己的记录状态(正常、错误、未完成、完成)。
如图4.1所示。
图4.1任务定时器流程图
4.3.2任务定时调度器的实现
(1)Timer的运用
Timer是一个定时器类,通过该类可以为指定的定时任务进行配置,它接受一个TimerTask做参数。
程序继承一个TimerTask类,用switch和case结构来选择要执行的线程。
(2)多线程运行机制
线程是轻型的进程。
在java中想要实现多线程,有两种手段,一种是继承Thread类,另一种是实现Runable接口。
我们程序中主要用的是头一种方式实现多线程程序。
每个步骤一般都会设计成为一个线程,让整个程序代码结构清晰。
代码解说情况附录二。
4.4错误纠正器的设计与实现
4.4.1错误纠正器的设计
错误纠正器的主要任务是处理本地任务执行的错误和网络断开故障。
本地任务执行的所有信息记录在数据库的一个任务表里面,我们要定时地查询任务表里面的任务执行状态,如果发现有出错,我们可以立刻转向相应的处理线程进行相应的处理。
网络是否断开,我们从数据库里面的电脑情况表中获得电脑的IP,接下来,我们利用文件传输器的连接功能检测网络是否通畅,并且修改该电脑在数据库中的记录。
如图4.2所示。
图4.2错误纠正器流程图
4.4.2错误纠正器的实现
每隔一段时间错误纠正器就会检测一次远程电脑是否正常和任务是否正常执行。
错误纠正器的代码框架跟任务定时器是一样的,而检测是否断网这一部分是根据文件传输器客户端的代码加以改进的,这里就不再赘述。
任务表中错误的记录最重要的是传输过程的出错。
有可能是断网的原因,也有可能是传输文件为空文件的原因。
如果是断网原因,我们立刻修改执行的目的电脑,把任务交给其他电脑处理;如果不是断网原因,可以根据文件长度是否为零来判断该文件是否为空文件,如果是,删除该记录,否则,重新传输该文件。
4.5课程相关联算法的设计与实现
4.5.1算法的设计
课程相关联算法是在算法Apriori基础上设计的,算法的设计主要步骤包括对课程聚类和相关度的计算。
(1)课程聚类
我们首先收集学校现有的课程名,由于FTP日志中老师对课程命名不规范,所以,我们必须为每个课程设定一些匹配规则,目的是为了筛选符合的记录。
接下来,我们将每个课程名跟标准库的数据进行比较得出与该课程相关的记录集合。
我们对匹配出来的记录集合整合成事务,整合规则为:
如果同一个IP的记录都在同一天里面,即认为是同一事务。
为了方便描述,本文采用A、B等表示课程名,选取两天包含A、B课程的记录作为模拟,事务用日期+IP表示。
如表4.1所示。
课程A
事务
日期
IP
2011-10-1219.222.171.9
2011-10-1
219.222.171.9
2011-10-1219.222.171.9
2011-10-1
219.222.171.9
2011-10-1219.222.171.1
2011-10-1
219.222.171.1
2011-10-1219.222.171.1
2011-10-1
219.222.171.1
2011-10-2219.222.171.1
2011-10-2
219.222.171.1
2011-10-2219.222.171.9
2011-10-2
219.222.171.9
课程B
事务
日期
IP
2011-10-2219.222.171.9
2011-10-2
219.222.171.9
2011-10-2219.222.171.9
2011-10-2
219.222.171.9
2011-10-2219.222.171.1
2011-10-2
219.222.171.1
2011-10-2219.222.171.1
2011-10-2
219.222.171.1
2011-10-1219.222.171.1
2011-10-1
219.222.171.1
表4.1模拟记录
去除重复的事务,我们可以得到课程A、B的频繁项集。
如表4.2所示。
课程A
事务
2011-10-1219.222.171.9
2011-10-1219.222.171.1
2011-10-2219.222.171.1
2011-10-2219.222.171.9
课程B
事务
2011-10-2219.222.171.9
2011-10-2219.222.171.1
2011-10-1219.222.171.1
表4.2课程A和课程B的频繁项集
(2)相关度计算
由关联规则可知,相关度(信任度)为公式Confidence(A→B)=P(A|B)/P(A)。
其中P(AUB)为包含项集AUB的事务数,P(A)是包含项集A的事务数。
上面例子,经过计算可以得出结果:
Confidence(A→B)=3/4=75%。
说明访问含有A课程的FTP文件时候有75%可能性去访问含有B课程的FTP文件。
4.5.2算法的改进
我们的支撑框架是基于分布式计算的,所以必须对算法的设计进行改进,使其适应分布式计算环境。
我们对课程聚类划分成若干个任务,即把课程名表划分若干个小表,发送给若干个电脑处理。
每台电脑处理好数据以后,把结果插入到数据库表中,服务端等待所有课程都聚类完毕,则从数据库中取出所有结果进行相关度运算。
在分布式计算环境中,根据上面篇章得知,首先我们必须建立任务,现在我们设计我们的课程模拟列表有数据挖掘、操作系统两门课程,分布式计算系统由两台电脑组成,IP分别为219.222.171.9
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 FTP 数据 挖掘 系统 核心 算法 设计 实现 毕业设计 论文