前言:想要寫出一篇引人入勝的文章?我們特意為您整理了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ù)。整個系統(tǒng)的主要事物邏輯在后臺服務(wù)器端,用以處理由WEB前端所提交的數(shù)據(jù)挖掘任務(wù),而用戶界面則通過瀏覽器來呈現(xiàn)。本文的重點是從系統(tǒng)的設(shè)計以及JAVA在線編譯環(huán)境的搭建入手,對系統(tǒng)處理數(shù)據(jù)的整個流程做了相應(yīng)的介紹,對于數(shù)據(jù)挖掘的關(guān)鍵步驟也進(jìn)行了詳細(xì)的分析介紹,對系統(tǒng)所預(yù)期的基于WEKA的數(shù)據(jù)挖掘功能也進(jìn)行了相應(yīng)的測試,同時取得了符合預(yù)期的實驗結(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可替代度影響力可實現(xiàn)度行業(yè)關(guān)聯(lián)度真實度開發(fā)該軟件的小組來自懷卡托大學(xué),故WEKA也稱懷卡托智能分析環(huán)境。WEKA使用的默認(rèn)數(shù)據(jù)格式為ARFF(AttributeRelationFileFormat),其文件類型為ASCII文本文件。類似于普通的文本文件,該種數(shù)據(jù)格式的結(jié)構(gòu)簡單,一般用于輕量級的數(shù)據(jù)結(jié)構(gòu)算法程序。一個ARFF對應(yīng)于一個二維的表格,其中每列表示數(shù)據(jù)集的各個屬性,各行表示數(shù)據(jù)集的各實例。
3.在線數(shù)據(jù)挖掘系統(tǒng)設(shè)計
3.1系統(tǒng)結(jié)構(gòu)
系統(tǒng)的整體結(jié)構(gòu)主要分為三部分:WEB端、服務(wù)器端及數(shù)據(jù)庫端。整個數(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,同時還有相關(guān)的結(jié)果數(shù)據(jù)寫入了數(shù)據(jù)當(dāng)中,用以在WEB頁面端顯示代碼的編譯結(jié)果。其中主要的功能模塊包括:數(shù)據(jù)庫模塊,源碼上傳模塊,激活編譯模塊,源碼編譯模塊,異常處理機(jī)制模塊以及結(jié)果輸出模塊。3.2源碼上傳及激活編譯在如圖1提交測試代碼后,點擊Submit,WEB端將提交的測試代碼存儲至服務(wù)器下數(shù)據(jù)庫source_code表中,而source_code表共有sid和source兩個屬性。另外一個用以存儲測試代碼文本的屬性為source。由于數(shù)據(jù)庫中的text數(shù)據(jù)類型為不受限存儲類型,故在測試代碼存儲時并不需要對所提交代碼的長度進(jìn)行檢查。在WEB端將測試代碼存儲至數(shù)據(jù)庫的同時,也通過HTTP協(xié)議將激活信號量發(fā)送至服務(wù)器端的OJ服務(wù),激活編譯功能。OJ服務(wù)首先按照信號量中所包含的sid屬性值在數(shù)據(jù)庫source_code表中進(jìn)行檢索,將source屬性值中的測試代碼文本取出來,生成Main.java文件,并將其放置在temporary目錄下以sid屬性值命名創(chuàng)建的臨時文件夾中。同時OJ服務(wù)需要被注冊為系統(tǒng)服務(wù),使其能夠具備一定的權(quán)限運行在后臺且調(diào)用某些系統(tǒng)服務(wù)以及系統(tǒng)資源。
3.3源碼編譯模塊
在完成OJ服務(wù)的激活工作,以及生成Main.java文件后,系統(tǒng)開始編譯工作。而Java程序從源碼到最后的可運行程序需要經(jīng)過兩個步驟:(1)源文件需要由相應(yīng)的編譯器編譯成字節(jié)碼。具體步驟為:源文件被創(chuàng)建之后,測試源碼首先會通過javac命令被編譯為.class文件,如圖2文件包含Main.java以及Main.class。若編譯器運行該源碼時并未找到相應(yīng)的.java文件或者.class文件,將會報“cantfindsymbol”的錯誤;(2)生成的字節(jié)碼由JVM解釋運行。需要說明的是Java類運行包括class的加載以及執(zhí)行,而JVM對于class的加載機(jī)制類似于操作系統(tǒng)對于資源的加載方式,即需要哪個class加載哪個,而不是全部加載。JVM將.calss文件以棧的數(shù)據(jù)結(jié)構(gòu)執(zhí)行,在相應(yīng)的線程被創(chuàng)建之后,會產(chǎn)生程序計數(shù)器PC以及棧Stack。其中,程序計數(shù)器PC用以存放下一條將要運行的程序偏移量而棧Stack中存放的是每次所要調(diào)用程序的棧幀。
3.4異常處理機(jī)制模塊及結(jié)果輸出
當(dāng)然,在整個系統(tǒng)的編譯過程以及結(jié)果生成的過程中會出現(xiàn)一些異常的情況,即系統(tǒng)所具備的異常處理機(jī)制。(1)Judging:表示提交的測試源碼處于編譯的狀態(tài),需要等待。(2)Systemerror:服務(wù)器的響應(yīng)出現(xiàn)了問題,不能編譯工作,造成的原因一般為編譯器沒有正常運行或文件存儲的目錄出現(xiàn)了問題。(3)TimeLimitExceeded:當(dāng)所提交的測試源碼運行時間超出了規(guī)定時間,將會被OJ服務(wù)強(qiáng)制結(jié)束任務(wù)。(4)CompileError:所提交的測試源碼出現(xiàn)了語法錯誤或者其他若干導(dǎo)致源碼不能正確編譯的問題時。(5)Accepted:該種狀態(tài)是所提交測試源碼順利經(jīng)過編譯并生成正確的結(jié)果文件。測試源碼的編譯工作完成之后,系統(tǒng)將源碼運行的結(jié)果寫入Result.txt文件之中,而在WEB端的頁面,待提交代碼的狀態(tài)由Judging狀態(tài)變?yōu)锳ccepted或Compileerror等狀態(tài)后可按頁面所提供的下載鏈接,下載結(jié)果文件如圖3,而下載得到的結(jié)果文件格式為.txt。
4.實驗
實驗中,我們所使用到的是WEKA中聚類kmeans算法,該算法是一種具有參數(shù)k,然后將輸入的n個數(shù)據(jù)分為k個聚類,然后使同一聚類中的相似度比較大,不同的聚類其相似度較小。且利用“中心對象”對聚類對象中所獲得的均值進(jìn)行計算。測試數(shù)據(jù)集我們所使用的是WEKA所自帶的weather.nominal.arff。
4.1關(guān)于kmeans聚類算法的實驗
4.1.1kmeans算法實驗數(shù)據(jù)kmeans算法實驗所用數(shù)據(jù)為WEKA自帶數(shù)據(jù)集測試文件weather.nominal.arff,其具體內(nèi)容為如圖4所示??梢钥吹絯eather.nominal.arff共有14條記錄,以及天氣,氣溫,濕度,是否有風(fēng),是否室外活動等5項屬性值。@data部分是它的數(shù)據(jù)部分。4.1.2Kmeans實驗測試代碼其中:4.1.3Kmeans實驗結(jié)果及分析由圖6以及圖7對比不難得出,使用基于WEKA的數(shù)據(jù)挖掘系統(tǒng)所得到的輸出結(jié)果與使用WEKA軟件所輸出的結(jié)果中該組數(shù)據(jù)都迭代了三次,可以看到最終的聚類個數(shù)都為5、3、4、2,即輸出的結(jié)果是相同的。故由此可得到結(jié)論,該系統(tǒng)可完全支持基于WEKA的數(shù)據(jù)挖掘工作,實現(xiàn)了軟件所預(yù)期的功能。
5.結(jié)語
在整個工作過程中,我們以在線數(shù)據(jù)挖掘系統(tǒng)為研究的對象,研究了相應(yīng)數(shù)據(jù)的處理、傳輸、算法實現(xiàn)和WEB展示。在本文中,首先介紹了WEKA相關(guān)技術(shù)以及在線數(shù)據(jù)挖掘系統(tǒng)的研究背景和意義,對于系統(tǒng)中的關(guān)鍵技術(shù)也進(jìn)行了具體的介紹與分析。同時也分析了基于WEKA數(shù)據(jù)挖掘系統(tǒng)的功能需求,讓我們進(jìn)一步明確系統(tǒng)處理數(shù)據(jù)的流程以及系統(tǒng)架構(gòu)等問題。對于系統(tǒng)的不同功能部分進(jìn)行了詳盡具體的設(shè)計與實現(xiàn),而且在最后結(jié)合相關(guān)聚類以及關(guān)聯(lián)規(guī)則算法對系統(tǒng)進(jìn)行了功能性測試。
作者:薛成 蔡遠(yuǎn) 李玉萍 單位:蘭州中川國際機(jī)場有限公司