公務(wù)員期刊網(wǎng) 論文中心 正文

WEKA下在線數(shù)據(jù)挖掘淺析

前言:想要寫出一篇引人入勝的文章?我們特意為您整理了WEKA下在線數(shù)據(jù)挖掘淺析范文,希望能給你帶來靈感和參考,敬請閱讀。

WEKA下在線數(shù)據(jù)挖掘淺析

weka軟件是一款集成了強(qiáng)大的機(jī)器學(xué)習(xí)算法以及數(shù)據(jù)挖掘算法且基于JAVA編譯環(huán)境下為數(shù)不多的開源數(shù)據(jù)挖掘軟件。研究工作則是對WEKA進(jìn)行了二次開發(fā),通過將WEKA和瀏覽器以及后臺評測端以B/S架構(gòu)的模式相結(jié)合,完成基于WEKA的數(shù)據(jù)挖掘任務(wù)。整個(gè)系統(tǒng)的主要事物邏輯在后臺服務(wù)器端,用以處理由WEB前端所提交的數(shù)據(jù)挖掘任務(wù),而用戶界面則通過瀏覽器來呈現(xiàn)。本文的重點(diǎn)是從系統(tǒng)的設(shè)計(jì)以及JAVA在線編譯環(huán)境的搭建入手,對系統(tǒng)處理數(shù)據(jù)的整個(gè)流程做了相應(yīng)的介紹,對于數(shù)據(jù)挖掘的關(guān)鍵步驟也進(jìn)行了詳細(xì)的分析介紹,對系統(tǒng)所預(yù)期的基于WEKA的數(shù)據(jù)挖掘功能也進(jìn)行了相應(yīng)的測試,同時(shí)取得了符合預(yù)期的實(shí)驗(yàn)結(jié)果。

1.研究現(xiàn)狀

國外對于數(shù)據(jù)挖掘技術(shù)的領(lǐng)先主要體現(xiàn)于挖掘算法的深入研究,例如對Boosting以及Bayes方法的研究,其目前所使用的主流數(shù)據(jù)挖掘軟件除了WEKA外,還有CognosScenario、SPSSClementine、IBMIntelligentMiner、QUEST以及KnowledgeStudio。國內(nèi)軟件有中科院的SMINER,東北大學(xué)的ScopeMiner以及上海復(fù)旦德門軟件公司的DMiner、ARMiner以及CIAS。

2.相關(guān)技術(shù)分析制定

2.1編譯系統(tǒng)

一般來說編譯系統(tǒng)可分為離線編譯和在線編譯。其中離線編譯系統(tǒng)是在專門的軟件環(huán)境之下,配置在本機(jī)的編譯系統(tǒng)。在程序處理過程中,離線編譯系統(tǒng)將預(yù)處理程序過程,編譯程序過程,匯編程序過程,裝配連接編譯程序過程全部配置于本機(jī)。2.2WEKA簡介行業(yè)曲線linkindustryAppraisementDOI:10.3969/j.issn.1001-8972.2022.14.036可替代度影響力可實(shí)現(xiàn)度行業(yè)關(guān)聯(lián)度真實(shí)度開發(fā)該軟件的小組來自懷卡托大學(xué),故WEKA也稱懷卡托智能分析環(huán)境。WEKA使用的默認(rèn)數(shù)據(jù)格式為ARFF(AttributeRelationFileFormat),其文件類型為ASCII文本文件。類似于普通的文本文件,該種數(shù)據(jù)格式的結(jié)構(gòu)簡單,一般用于輕量級的數(shù)據(jù)結(jié)構(gòu)算法程序。一個(gè)ARFF對應(yīng)于一個(gè)二維的表格,其中每列表示數(shù)據(jù)集的各個(gè)屬性,各行表示數(shù)據(jù)集的各實(shí)例。

3.在線數(shù)據(jù)挖掘系統(tǒng)設(shè)計(jì)

3.1系統(tǒng)結(jié)構(gòu)

系統(tǒng)的整體結(jié)構(gòu)主要分為三部分:WEB端、服務(wù)器端及數(shù)據(jù)庫端。整個(gè)數(shù)據(jù)挖掘的過程為首先由用戶在WEB頁面端提交JAVA測試代碼,代碼中包含所要測試的WEKA數(shù)據(jù)集文件以及所要調(diào)用的相關(guān)WEKA函數(shù)。WEB界面對于所提交的代碼進(jìn)行預(yù)處理,以及將調(diào)用WEKA函數(shù)的命令一起打包后提交至后臺服務(wù)器端,后臺服務(wù)器進(jìn)行代碼的在線編譯,最后生成結(jié)果文件Result.txt,同時(shí)還有相關(guān)的結(jié)果數(shù)據(jù)寫入了數(shù)據(jù)當(dāng)中,用以在WEB頁面端顯示代碼的編譯結(jié)果。其中主要的功能模塊包括:數(shù)據(jù)庫模塊,源碼上傳模塊,激活編譯模塊,源碼編譯模塊,異常處理機(jī)制模塊以及結(jié)果輸出模塊。3.2源碼上傳及激活編譯在如圖1提交測試代碼后,點(diǎn)擊Submit,WEB端將提交的測試代碼存儲至服務(wù)器下數(shù)據(jù)庫source_code表中,而source_code表共有sid和source兩個(gè)屬性。另外一個(gè)用以存儲測試代碼文本的屬性為source。由于數(shù)據(jù)庫中的text數(shù)據(jù)類型為不受限存儲類型,故在測試代碼存儲時(shí)并不需要對所提交代碼的長度進(jìn)行檢查。在WEB端將測試代碼存儲至數(shù)據(jù)庫的同時(shí),也通過HTTP協(xié)議將激活信號量發(fā)送至服務(wù)器端的OJ服務(wù),激活編譯功能。OJ服務(wù)首先按照信號量中所包含的sid屬性值在數(shù)據(jù)庫source_code表中進(jìn)行檢索,將source屬性值中的測試代碼文本取出來,生成Main.java文件,并將其放置在temporary目錄下以sid屬性值命名創(chuàng)建的臨時(shí)文件夾中。同時(shí)OJ服務(wù)需要被注冊為系統(tǒng)服務(wù),使其能夠具備一定的權(quán)限運(yùn)行在后臺且調(diào)用某些系統(tǒng)服務(wù)以及系統(tǒng)資源。

3.3源碼編譯模塊

在完成OJ服務(wù)的激活工作,以及生成Main.java文件后,系統(tǒng)開始編譯工作。而Java程序從源碼到最后的可運(yùn)行程序需要經(jīng)過兩個(gè)步驟:(1)源文件需要由相應(yīng)的編譯器編譯成字節(jié)碼。具體步驟為:源文件被創(chuàng)建之后,測試源碼首先會通過javac命令被編譯為.class文件,如圖2文件包含Main.java以及Main.class。若編譯器運(yùn)行該源碼時(shí)并未找到相應(yīng)的.java文件或者.class文件,將會報(bào)“cantfindsymbol”的錯(cuò)誤;(2)生成的字節(jié)碼由JVM解釋運(yùn)行。需要說明的是Java類運(yùn)行包括class的加載以及執(zhí)行,而JVM對于class的加載機(jī)制類似于操作系統(tǒng)對于資源的加載方式,即需要哪個(gè)class加載哪個(gè),而不是全部加載。JVM將.calss文件以棧的數(shù)據(jù)結(jié)構(gòu)執(zhí)行,在相應(yīng)的線程被創(chuàng)建之后,會產(chǎn)生程序計(jì)數(shù)器PC以及棧Stack。其中,程序計(jì)數(shù)器PC用以存放下一條將要運(yùn)行的程序偏移量而棧Stack中存放的是每次所要調(diào)用程序的棧幀。

3.4異常處理機(jī)制模塊及結(jié)果輸出

當(dāng)然,在整個(gè)系統(tǒng)的編譯過程以及結(jié)果生成的過程中會出現(xiàn)一些異常的情況,即系統(tǒng)所具備的異常處理機(jī)制。(1)Judging:表示提交的測試源碼處于編譯的狀態(tài),需要等待。(2)Systemerror:服務(wù)器的響應(yīng)出現(xiàn)了問題,不能編譯工作,造成的原因一般為編譯器沒有正常運(yùn)行或文件存儲的目錄出現(xiàn)了問題。(3)TimeLimitExceeded:當(dāng)所提交的測試源碼運(yùn)行時(shí)間超出了規(guī)定時(shí)間,將會被OJ服務(wù)強(qiáng)制結(jié)束任務(wù)。(4)CompileError:所提交的測試源碼出現(xiàn)了語法錯(cuò)誤或者其他若干導(dǎo)致源碼不能正確編譯的問題時(shí)。(5)Accepted:該種狀態(tài)是所提交測試源碼順利經(jīng)過編譯并生成正確的結(jié)果文件。測試源碼的編譯工作完成之后,系統(tǒng)將源碼運(yùn)行的結(jié)果寫入Result.txt文件之中,而在WEB端的頁面,待提交代碼的狀態(tài)由Judging狀態(tài)變?yōu)锳ccepted或Compileerror等狀態(tài)后可按頁面所提供的下載鏈接,下載結(jié)果文件如圖3,而下載得到的結(jié)果文件格式為.txt。

4.實(shí)驗(yàn)

實(shí)驗(yàn)中,我們所使用到的是WEKA中聚類kmeans算法,該算法是一種具有參數(shù)k,然后將輸入的n個(gè)數(shù)據(jù)分為k個(gè)聚類,然后使同一聚類中的相似度比較大,不同的聚類其相似度較小。且利用“中心對象”對聚類對象中所獲得的均值進(jìn)行計(jì)算。測試數(shù)據(jù)集我們所使用的是WEKA所自帶的weather.nominal.arff。

4.1關(guān)于kmeans聚類算法的實(shí)驗(yàn)

4.1.1kmeans算法實(shí)驗(yàn)數(shù)據(jù)kmeans算法實(shí)驗(yàn)所用數(shù)據(jù)為WEKA自帶數(shù)據(jù)集測試文件weather.nominal.arff,其具體內(nèi)容為如圖4所示。可以看到weather.nominal.arff共有14條記錄,以及天氣,氣溫,濕度,是否有風(fēng),是否室外活動(dòng)等5項(xiàng)屬性值。@data部分是它的數(shù)據(jù)部分。4.1.2Kmeans實(shí)驗(yàn)測試代碼其中:4.1.3Kmeans實(shí)驗(yàn)結(jié)果及分析由圖6以及圖7對比不難得出,使用基于WEKA的數(shù)據(jù)挖掘系統(tǒng)所得到的輸出結(jié)果與使用WEKA軟件所輸出的結(jié)果中該組數(shù)據(jù)都迭代了三次,可以看到最終的聚類個(gè)數(shù)都為5、3、4、2,即輸出的結(jié)果是相同的。故由此可得到結(jié)論,該系統(tǒng)可完全支持基于WEKA的數(shù)據(jù)挖掘工作,實(shí)現(xiàn)了軟件所預(yù)期的功能。

5.結(jié)語

在整個(gè)工作過程中,我們以在線數(shù)據(jù)挖掘系統(tǒng)為研究的對象,研究了相應(yīng)數(shù)據(jù)的處理、傳輸、算法實(shí)現(xiàn)和WEB展示。在本文中,首先介紹了WEKA相關(guān)技術(shù)以及在線數(shù)據(jù)挖掘系統(tǒng)的研究背景和意義,對于系統(tǒng)中的關(guān)鍵技術(shù)也進(jìn)行了具體的介紹與分析。同時(shí)也分析了基于WEKA數(shù)據(jù)挖掘系統(tǒng)的功能需求,讓我們進(jìn)一步明確系統(tǒng)處理數(shù)據(jù)的流程以及系統(tǒng)架構(gòu)等問題。對于系統(tǒng)的不同功能部分進(jìn)行了詳盡具體的設(shè)計(jì)與實(shí)現(xiàn),而且在最后結(jié)合相關(guān)聚類以及關(guān)聯(lián)規(guī)則算法對系統(tǒng)進(jìn)行了功能性測試。

作者:薛成 蔡遠(yuǎn) 李玉萍 單位:蘭州中川國際機(jī)場有限公司

精選范文推薦