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