公务员期刊网 论文中心 正文

WEKA下在线数据挖掘浅析

WEKA下在线数据挖掘浅析

WEKA软件是一款集成了强大的机器学习算法以及数据挖掘算法且基于JAVA编译环境下为数不多的开源数据挖掘软件。研究工作则是对WEKA进行了二次开发,通过将WEKA和浏览器以及后台评测端以B/S架构的模式相结合,完成基于WEKA的数据挖掘任务。整个系统的主要事物逻辑在后台服务器端,用以处理由WEB前端所提交的数据挖掘任务,而用户界面则通过浏览器来呈现。本文的重点是从系统的设计以及JAVA在线编译环境的搭建入手,对系统处理数据的整个流程做了相应的介绍,对于数据挖掘的关键步骤也进行了详细的分析介绍,对系统所预期的基于WEKA的数据挖掘功能也进行了相应的测试,同时取得了符合预期的实验结果。

1.研究现状

国外对于数据挖掘技术的领先主要体现于挖掘算法的深入研究,例如对Boosting以及Bayes方法的研究,其目前所使用的主流数据挖掘软件除了WEKA外,还有CognosScenario、SPSSClementine、IBMIntelligentMiner、QUEST以及KnowledgeStudio。国内软件有中科院的SMINER,东北大学的ScopeMiner以及上海复旦德门软件公司的DMiner、ARMiner以及CIAS。

2.相关技术分析制定

2.1编译系统

一般来说编译系统可分为离线编译和在线编译。其中离线编译系统是在专门的软件环境之下,配置在本机的编译系统。在程序处理过程中,离线编译系统将预处理程序过程,编译程序过程,汇编程序过程,装配连接编译程序过程全部配置于本机。2.2WEKA简介行业曲线linkindustryAppraisementDOI:10.3969/j.issn.1001-8972.2022.14.036可替代度影响力可实现度行业关联度真实度开发该软件的小组来自怀卡托大学,故WEKA也称怀卡托智能分析环境。WEKA使用的默认数据格式为ARFF(AttributeRelationFileFormat),其文件类型为ASCII文本文件。类似于普通的文本文件,该种数据格式的结构简单,一般用于轻量级的数据结构算法程序。一个ARFF对应于一个二维的表格,其中每列表示数据集的各个属性,各行表示数据集的各实例。

3.在线数据挖掘系统设计

3.1系统结构

系统的整体结构主要分为三部分:WEB端、服务器端及数据库端。整个数据挖掘的过程为首先由用户在WEB页面端提交JAVA测试代码,代码中包含所要测试的WEKA数据集文件以及所要调用的相关WEKA函数。WEB界面对于所提交的代码进行预处理,以及将调用WEKA函数的命令一起打包后提交至后台服务器端,后台服务器进行代码的在线编译,最后生成结果文件Result.txt,同时还有相关的结果数据写入了数据当中,用以在WEB页面端显示代码的编译结果。其中主要的功能模块包括:数据库模块,源码上传模块,激活编译模块,源码编译模块,异常处理机制模块以及结果输出模块。3.2源码上传及激活编译在如图1提交测试代码后,点击Submit,WEB端将提交的测试代码存储至服务器下数据库source_code表中,而source_code表共有sid和source两个属性。另外一个用以存储测试代码文本的属性为source。由于数据库中的text数据类型为不受限存储类型,故在测试代码存储时并不需要对所提交代码的长度进行检查。在WEB端将测试代码存储至数据库的同时,也通过HTTP协议将激活信号量发送至服务器端的OJ服务,激活编译功能。OJ服务首先按照信号量中所包含的sid属性值在数据库source_code表中进行检索,将source属性值中的测试代码文本取出来,生成Main.java文件,并将其放置在temporary目录下以sid属性值命名创建的临时文件夹中。同时OJ服务需要被注册为系统服务,使其能够具备一定的权限运行在后台且调用某些系统服务以及系统资源。

3.3源码编译模块

在完成OJ服务的激活工作,以及生成Main.java文件后,系统开始编译工作。而Java程序从源码到最后的可运行程序需要经过两个步骤:(1)源文件需要由相应的编译器编译成字节码。具体步骤为:源文件被创建之后,测试源码首先会通过javac命令被编译为.class文件,如图2文件包含Main.java以及Main.class。若编译器运行该源码时并未找到相应的.java文件或者.class文件,将会报“cantfindsymbol”的错误;(2)生成的字节码由JVM解释运行。需要说明的是Java类运行包括class的加载以及执行,而JVM对于class的加载机制类似于操作系统对于资源的加载方式,即需要哪个class加载哪个,而不是全部加载。JVM将.calss文件以栈的数据结构执行,在相应的线程被创建之后,会产生程序计数器PC以及栈Stack。其中,程序计数器PC用以存放下一条将要运行的程序偏移量而栈Stack中存放的是每次所要调用程序的栈帧。

3.4异常处理机制模块及结果输出

当然,在整个系统的编译过程以及结果生成的过程中会出现一些异常的情况,即系统所具备的异常处理机制。(1)Judging:表示提交的测试源码处于编译的状态,需要等待。(2)Systemerror:服务器的响应出现了问题,不能编译工作,造成的原因一般为编译器没有正常运行或文件存储的目录出现了问题。(3)TimeLimitExceeded:当所提交的测试源码运行时间超出了规定时间,将会被OJ服务强制结束任务。(4)CompileError:所提交的测试源码出现了语法错误或者其他若干导致源码不能正确编译的问题时。(5)Accepted:该种状态是所提交测试源码顺利经过编译并生成正确的结果文件。测试源码的编译工作完成之后,系统将源码运行的结果写入Result.txt文件之中,而在WEB端的页面,待提交代码的状态由Judging状态变为Accepted或Compileerror等状态后可按页面所提供的下载链接,下载结果文件如图3,而下载得到的结果文件格式为.txt。

4.实验

实验中,我们所使用到的是WEKA中聚类kmeans算法,该算法是一种具有参数k,然后将输入的n个数据分为k个聚类,然后使同一聚类中的相似度比较大,不同的聚类其相似度较小。且利用“中心对象”对聚类对象中所获得的均值进行计算。测试数据集我们所使用的是WEKA所自带的weather.nominal.arff。

4.1关于kmeans聚类算法的实验

4.1.1kmeans算法实验数据kmeans算法实验所用数据为WEKA自带数据集测试文件weather.nominal.arff,其具体内容为如图4所示。可以看到weather.nominal.arff共有14条记录,以及天气,气温,湿度,是否有风,是否室外活动等5项属性值。@data部分是它的数据部分。4.1.2Kmeans实验测试代码其中:4.1.3Kmeans实验结果及分析由图6以及图7对比不难得出,使用基于WEKA的数据挖掘系统所得到的输出结果与使用WEKA软件所输出的结果中该组数据都迭代了三次,可以看到最终的聚类个数都为5、3、4、2,即输出的结果是相同的。故由此可得到结论,该系统可完全支持基于WEKA的数据挖掘工作,实现了软件所预期的功能。

5.结语

在整个工作过程中,我们以在线数据挖掘系统为研究的对象,研究了相应数据的处理、传输、算法实现和WEB展示。在本文中,首先介绍了WEKA相关技术以及在线数据挖掘系统的研究背景和意义,对于系统中的关键技术也进行了具体的介绍与分析。同时也分析了基于WEKA数据挖掘系统的功能需求,让我们进一步明确系统处理数据的流程以及系统架构等问题。对于系统的不同功能部分进行了详尽具体的设计与实现,而且在最后结合相关聚类以及关联规则算法对系统进行了功能性测试。

作者:薛成 蔡远 李玉萍 单位:兰州中川国际机场有限公司

精选范文推荐