前言:想要寫出一篇引人入勝的文章?我們特意為您整理了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所示??梢钥吹絯eather.nominal.arff共有14條記錄,以及天氣,氣溫,濕度,是否有風,是否室外活動等5項屬性值。@data部分是它的數據部分。4.1.2Kmeans實驗測試代碼其中:4.1.3Kmeans實驗結果及分析由圖6以及圖7對比不難得出,使用基于WEKA的數據挖掘系統所得到的輸出結果與使用WEKA軟件所輸出的結果中該組數據都迭代了三次,可以看到最終的聚類個數都為5、3、4、2,即輸出的結果是相同的。故由此可得到結論,該系統可完全支持基于WEKA的數據挖掘工作,實現了軟件所預期的功能。
5.結語
在整個工作過程中,我們以在線數據挖掘系統為研究的對象,研究了相應數據的處理、傳輸、算法實現和WEB展示。在本文中,首先介紹了WEKA相關技術以及在線數據挖掘系統的研究背景和意義,對于系統中的關鍵技術也進行了具體的介紹與分析。同時也分析了基于WEKA數據挖掘系統的功能需求,讓我們進一步明確系統處理數據的流程以及系統架構等問題。對于系統的不同功能部分進行了詳盡具體的設計與實現,而且在最后結合相關聚類以及關聯規則算法對系統進行了功能性測試。
作者:薛成 蔡遠 李玉萍 單位:蘭州中川國際機場有限公司