楊忠誠
【摘 要】數據挖掘、知識發現和機器學習的研究取得了矚目的成果,一大批算法和數據集層出不窮,為讓研究者簡單、有效地測試新的算法和數據,開源工具WEKA提供了一個優秀的測試和開發平臺。目前,WEKA已成為數據挖掘研究領域最常用的工具。文章詳細介紹WEKA平臺的使用方法,并介紹在WEKA社區內一些成熟的應用模塊。
【關鍵詞】數據挖掘;WEKA;算法;數據集層
【中圖分類號】TP311.13 【文獻標識碼】A 【文章編號】1674-0688(2018)09-0038-02
0 引言
由于需要統一的工作臺,讓研究人員能夠輕松獲得機器學習中的最新技術,懷卡托知識分析環境(Waikato Environment for Knowledge Analysis,WEKA)應運而生。在1992年項目開始的時候,學習算法有多種語言可供使用,可用于不同的平臺,并以各種數據格式運行。收集學習機制來做數據集的比較研究,這個任務的工作量多得令人望而生畏。設想WEKA不僅提供學習算法的工具箱,而且還提供一個框架,研究人員可以實現新算法,而不必關心支持數據操作和方案評估的基礎架構。
目前,WEKA被認為是數據挖掘和機器學習領域的里程碑式系統,被研究和商業領域廣泛接受,成為數據挖掘研究領域最常用的工具。WEKA的成功很大程度上歸功于它的開源性,用戶能夠自由使用源代碼,也就愿意改進或編寫新的項目融入擴展WEKA。
1 WEKA工作臺
WEKA項目旨在為研究者和練習者提供通用的機器學習算法集和數據預處理工具,用戶可以簡單快速地在WEKA工作臺上對新的數據集進行新的算法測試,其模塊化、可擴展的架構允許用戶從廣泛的基礎學習算法和工具集合中構建復雜的數據挖掘流程。通過簡單的API、插件機制和設備,可以自動將新的學習算法與WEKA的圖形用戶界面集成在一起,因此擴展工具包非常容易。工作臺包括回歸、分類、聚類、關聯規則挖掘和屬性選擇等算法。數據可視化工具和許多預處理工具很好地滿足了數據的初步探索。這些與學習計劃的統計評估和學習結果的可視化相結合,支持CRISP-DM等數據挖掘過程模型。
WEKA提供許多圖形用戶界面,使得應用算法變得極其容易。其中主要的GUI是“Explorer”,它有一個基于面板的界面,不同的面板對應不同的數據挖掘任務。在“預處理”面板的第一個面板中,可以使用WEKA的數據預處理工具“過濾器”加載和轉換數據。數據可以從各種來源加載,包括文件、URL和數據庫。支持的文件格式包括WEKA自己的ARFF格式、CSV格式、LibSVM格式和C4.5格式,也可以使用生成數據并使用數據集編輯器手動編輯數據。
資源管理器中的第二個面板允許訪問WEKA的分類和回歸算法,相應的面板被稱為“分類”,因為回歸技術被視為“連續分類”的預測指標。默認情況下,該面板對預處理面板中已準備的數據集上的選定學習算法運行交叉驗證,用以估計預測性能。它還顯示了從完整數據集構建的模型的文本表示。面板還提供對模型的圖形表示的訪問,如決策樹等。此外,它可以將散點圖中的預測誤差可視化,還可以通過ROC曲線和其他閾值曲線進行評估。模型也可以保存并加載到此面板中。
除了監督算法,WEKA還支持應用無監督算法,即關聯規則挖掘的聚類算法和方法。這些資源可以在資源管理器中分別通過第三和第四個面板訪問。用戶能夠通過“集群”面板對預處理面板中加載的數據運行集群算法,為評估聚類性能提供了簡單的統計數據。統計聚類算法基于似然的性能,以及如果在數據中的某個屬性中指定了“真”聚類成員資格的比較。如果適用,聚類結構也可能可視化,如有必要,模型可以在持久存儲。
WEKA對聚類任務的支持并不像對分類和回歸的支持那么廣泛,但是它擁有更多的聚類技術,而不僅僅是關聯規則挖掘技術,關聯規則挖掘目前在某種程度上被忽略了。盡管如此,它還是包含了該領域最著名算法及其他一些算法的實現。這些方法可以通過Explorer中的Associate面板訪問。
數據挖掘在實際應用中最重要的任務之一是識別數據中哪些屬性是最具預測性的。為此,WEKA的資源管理器有一個用于屬性選擇的專用面板——“選擇屬性”,它提供了各種算法和評估標準,用于識別數據集中最重要的屬性。由于可以將不同的搜索方法與不同的評估標準結合起來,因此可以配置各種可能的候選技術。所選屬性集的健壯性可以通過基于交叉驗證的方法進行驗證。屬性選擇面板主要設計用于探索性數據分析。WEKA的“Filtered Classifier”(可通過Classify面板訪問)可將屬性選擇技術與基礎分類或回歸算法結合使用,以避免在獲得的性能估計中引入積極的偏差。
在許多實際應用中,數據可視化提供了重要功能,會通知為當前問題選擇適當算法的過程,有些甚至可以避免使用機器學習和數據挖掘算法進一步分析。資源管理器中的最后一個面板稱為“可視化”,它提供了一個顏色編碼的散點圖矩陣,以及通過選擇該矩陣中的單個繪圖并選擇部分數據以進行可視化從而進行向下鉆取的選項。也可以獲得關于單個數據點的信息,并以選定的量級給數據添加隨機噪聲以發現模糊的數據。
Explorer專為基于批處理的數據處理而設計:培訓數據將全部加載到內存中,然后進行處理。這可能不適用于涉及大型數據集的問題。但是,WEKA有一些允許增量模型構建的算法,可以通過命令行界面以增量模式應用。這些算法的增量特性在資源管理器中被忽略,但可以使用WEKA的一組圖形用戶界面的新增功能來利用這些算法。大多數可以解決的任務與資源管理器也可以由知識流處理。但是,除了基于批處理的訓練之外,其數據流模型還可以使用處理節點進行增量更新,這些節點可以在將各個實例提供給適當的增量學習算法之前加載和預處理這些實例。它還提供可視化和評估的節點。一旦配置了相互連接的處理節點的設置,它就可以保存下來供以后重新使用。
WEKA中的第三個主要圖形用戶界面是“Experimenter”,該接口旨在便于根據WEKA中提供的許多不同評估標準對算法的預測性能進行實驗性比較。實驗可能涉及跨多個數據集運行的多種算法,如使用重復的交叉驗證。實驗還可以分布在網絡中的不同計算節點上,以減少單個節點的計算負載。一旦建立了實驗,可以將其保存為XML或二進制格式,以便在必要時重新訪問它。配置和保存的實驗也可以從命令行運行。與WEKA的其他用戶界面相比,數據挖掘從業者可能不太經常使用Experimenter。但是,一旦在資源管理器中進行了初步實驗,使用這種替代界面為特定數據集或數據集的集合確定合適的算法通常會更容易。總結WEKA主要圖形用戶界面的簡要說明,無論用戶需要哪種用戶界面,提供用于運行WEKA的Java虛擬機都有足夠的堆空間是非常重要的。為了避免交換,需要預先指定所需的內存量(應設置為低于所用機器的物理內存量)。
2 基于WEKA的項目
有很多項目以某種方式擴展或集成到WEKA中,包括以下方面。
(1)自然語言處理系統。有許多工具使用WEKA進行自然語言處理:GATE是NLP工作臺;Balie執行語言識別、標記、句子邊界檢測和命名實體識別;Senseval-2是一個用于詞義解歧的系統;Kea是一個自動關鍵短語提取系統。
(2)生物學中的知識發現。已經開發了幾種使用或基于WEKA的工具來分析生物學應用中的數據:BioWEKA是WEKA在生物學、生物信息學和生物化學方面的任務的擴展工具;表位工具包(EpiT)是基于WEKA開發表位預測工具的平臺;maxdView和Mayday提供微陣列數據的可視化和分析。
(3)分布式并行數據挖掘。有許多項目擴展WEKA以用于分布式數據挖掘:Weka-Parallel提供分布式交叉驗證功能;GridWeka提供分布式評分和測試及交叉驗證;FAEHIM和Weka4WS使WEKA可以提供網絡服務。
(4)開源數據挖掘系統。幾個眾所周知的開源數據挖掘系統都提供插件來訪問WEKA的算法,Konstanz Information Miner(KNIME)和RapidMiner是兩個這樣的系統。R統計計算環境也通過RWeka軟件包提供與WEKA的接口。
(5)科學的工作環境。Kepler Weka項目將WEKA的所有功能集成到Kepler開源科學工作流平臺中。
3 結語
本文首先介紹了WEKA平臺的使用方法,對其面板上的插件進行了詳細的說明并分析了各插件之間的關聯關系,其次將WEKA作為開源軟件發布并在Java中實現,最后介紹了WEKA社區中使用者開發集成的一些成熟的應用模塊。本文可以為使用WEKA進行數據挖掘的學者提供很好的參考。
參 考 文 獻
[1] 趙陽.WEKA系統及其在數據挖掘教學中的應用[J].科技信息,2008(30).
[2] 鄭繼剛,楊春華,曾慶紅,等.基于WEKA平臺的不確定數據挖掘[J].保山學院學報,2010(5).
[3] 陳氏映雪(Tran Thi Anh Tuyet).WEKA環境下模糊聚類算法集成研究[D].上海:上海大學,2013.
[4]劉曉華.基于WEKA的數據挖掘技術在物流系統中的應用[J].科技情報開發與經濟,2007(22).
[5] 廖強.基于關聯規則挖掘的WEKA數據挖掘應用[J].計算機光盤軟件與應用,2012(19).
[6] 王彥增,曹正.基于WEKA數據挖掘中關聯規則的分析及應用舉例[J].經濟論壇,2013(1).
[責任編輯:鐘聲賢]