譚征++王立宏
摘要:目前,數(shù)據(jù)挖掘原理與算法這門課在教學(xué)中主要以講授經(jīng)典的算法和理論為主,枯燥的算法分析和理論介紹很難引起學(xué)生的興趣,而吸引學(xué)生并讓他們體驗到實踐效果對完成教學(xué)目標(biāo)尤為重要。本文討論了以挖掘軟件WEKA為平臺進(jìn)行教學(xué)的思路。
關(guān)鍵詞:WEKA平臺;數(shù)據(jù)挖掘課程;教學(xué)效果
中圖分類號:G642.41 文獻(xiàn)標(biāo)志碼:A 文章編號:1674-9324(2014)52-0158-02
一、引言
數(shù)據(jù)挖掘是將隱含的,尚不為人所知的,同時又是潛在有用的信息從數(shù)據(jù)中提取出來,建立計算機程序,自動在數(shù)據(jù)庫中搜索,已發(fā)現(xiàn)規(guī)律或者模式[1]。很多高校,包括世界上的一些著名高校都開設(shè)了數(shù)據(jù)挖掘課程。課程基礎(chǔ)理論部分,一般包括數(shù)據(jù)預(yù)處理、關(guān)聯(lián)規(guī)則、分類、聚類、時間序列挖掘、web挖掘等內(nèi)容,通過該課程的學(xué)習(xí)使學(xué)生學(xué)會分析研究挖掘中數(shù)據(jù)預(yù)處理、常用算法、結(jié)果的可視化等,并培養(yǎng)學(xué)生的數(shù)據(jù)抽象能力,提高學(xué)生的專業(yè)素質(zhì),為學(xué)生畢業(yè)后從事有關(guān)的工作打下一個良好的基礎(chǔ)[2]。數(shù)據(jù)挖掘是多學(xué)科交叉而產(chǎn)生的一門新技術(shù),涉及的知識面很多,現(xiàn)在教材上主要介紹的都是一些經(jīng)典的算法和理論,比較枯燥,很難引起學(xué)生的興趣。數(shù)據(jù)挖掘從一開始就是應(yīng)用性的科學(xué),它有很強的實驗性,因此,在數(shù)據(jù)挖掘?qū)嶒炛羞x擇合適的數(shù)據(jù)挖掘軟件非常重要[3]。商用的數(shù)據(jù)挖掘軟件很多,懷卡托大學(xué)的Weka小組榮獲了數(shù)據(jù)挖掘和知識探索領(lǐng)域的最高服務(wù)獎,Weka系統(tǒng)得到了廣泛的認(rèn)可,被譽為數(shù)據(jù)挖掘和機器學(xué)習(xí)歷史上的里程碑。因此,我們將Weka引入到數(shù)據(jù)挖掘的課堂教學(xué)實踐中。首先,是任課教師在講授經(jīng)典算法的同時,通過Weka的可視化界面展示經(jīng)典算法和實例的運行效果;也可以應(yīng)用WEKA的多種算法對某一實例進(jìn)行對比演示,在課程作業(yè)環(huán)節(jié),為學(xué)生布置了一些現(xiàn)實應(yīng)用,并要求他們借助WEKA自己解決[4]。這樣,學(xué)生通過Weka平臺可以看到經(jīng)典算法實現(xiàn)的效果,也可以自己動手完成作業(yè),有能力的同學(xué)還可以通過Weka軟件實現(xiàn)自己的算法,或者是對現(xiàn)有算法的改進(jìn)實現(xiàn)。讓枯燥變得有趣,讓抽象變成實現(xiàn),引導(dǎo)學(xué)生了解數(shù)據(jù)挖掘課程的作用,培養(yǎng)他們利用所學(xué)知識解決實際問題的動手能力和發(fā)現(xiàn)問題、解決問題、評估問題的研究能力[4]。
二、Weka簡介
Weka是由新西蘭懷卡托大學(xué)開發(fā)的,是懷卡托智能分析系統(tǒng)的縮寫。Weka用Java寫成,并且限制在GUN通用公證書的條件下發(fā)布。它可運行于幾乎所有的操作平臺,包括Linux,Windows,Macintosh操作系統(tǒng)。Weka工作平臺能處理所有標(biāo)準(zhǔn)數(shù)據(jù)挖掘問題的方法:回歸、分類、聚類、關(guān)聯(lián)規(guī)則挖掘及屬性選擇。WEKA要求的數(shù)據(jù)形式必須是ARFF格式,CSV格式,C4.5格式。WEKA存儲數(shù)據(jù)的格式是ARFF文件,這是一種ASCII文本文件,表格里的行稱作一個實例Instance,一個列稱作一個屬性Attribute。這樣的表格呈現(xiàn)了屬性之間的一種關(guān)系。
Weka的使用方式之一是將一種學(xué)習(xí)方法應(yīng)用于一個數(shù)據(jù)集,然后分析其輸出,從而更多地了解這些數(shù)據(jù)。另一種方式,則是使用已學(xué)到的模型對新實例做出預(yù)測。第三種方式是應(yīng)用幾種不同的學(xué)習(xí)器,根據(jù)他們的性能表現(xiàn)選擇其中的一種來做預(yù)測。Weka中最有價值的部分是真實學(xué)習(xí)方案的實現(xiàn)。其次,當(dāng)屬數(shù)據(jù)預(yù)處理工具也就是過濾器。當(dāng)用戶運行Weka后,必須從如下四種不同的用戶界面中做出選擇:探索者、知識流、實驗者和命令界面。使用Weka最簡單的方法,是通過稱作探索者(explorer)的圖形界面,通過這個用戶界面,所有weka功能都可以由菜單選擇及表單填寫的方式完成。知識流界面(Knowledge Flow),使用戶能知道自己如何處理流動中的數(shù)據(jù)。知識流允許用戶在屏幕上任意拖動代表學(xué)習(xí)算法和數(shù)據(jù)源的方框,并將他們結(jié)合在一起設(shè)置。實驗者界面是專門設(shè)計來幫助用戶在實際應(yīng)用中將不同的學(xué)習(xí)技術(shù)進(jìn)行比較,因為它能使具有不同參數(shù)設(shè)定的分類器和過濾器在運行一組數(shù)據(jù)時更加容易,收集性能統(tǒng)計數(shù)據(jù)及實現(xiàn)顯著性測試時更加簡便。Weka可由以下網(wǎng)址獲?。篽ttp://www.cs.waikato.ac.nz/ml/WEKA。用戶既可以下載一個與具體操作系統(tǒng)相匹配的安裝文件,也可以下載一個可執(zhí)行的Java包文件,然后在已安裝了Java的機器上以通常的方式運行。
三、課堂教學(xué)實例
分類的目的是學(xué)會一個分類函數(shù)或分類模型(分類器)。該模型能把數(shù)據(jù)庫中的數(shù)據(jù)映射到給定類別中的某一個。教材中有一個天氣的數(shù)據(jù)集,通過Weka平臺演示決策樹的生成過程,通過直觀教學(xué),使學(xué)生掌握決策樹算法的本質(zhì)思想,激發(fā)他們掌握算法的興趣。
1.準(zhǔn)備數(shù)據(jù)。數(shù)據(jù)通常存于電子數(shù)據(jù)表格或數(shù)據(jù)庫中。Weka存儲數(shù)據(jù)的原始方式是ARFF格式,ARFF文件由一組實例組成,每個實例的屬性由逗號分開。用戶需將文件載入文字處理軟件中,用@relation標(biāo)簽給該數(shù)據(jù)集取個名字,用@attribute標(biāo)簽加入屬性信息,再另起一行鍵入@data,最后將文件以純文本方式存儲。我們采用的是Weka自帶的weather.arff數(shù)據(jù)文件。
2.將數(shù)據(jù)載入探索者。啟動Weka,從底部的四個圖形用戶界面中(SimpleCLI、Explorer、Experimenter、knowledgeflow)選擇探索者,面板頂部的六個標(biāo)簽代表著探索者的基本功能,進(jìn)入預(yù)處理階段(preprocess),單擊Open file按鈕,選擇weather.arff,該數(shù)據(jù)集有14個實例和5個屬性(temperature,humidity,outlook,windy,play),play被選為類屬性,選擇一個屬性值,面板右下方的柱狀圖表明了相對于該屬性每個值,play的兩種值(yes,no)個字出現(xiàn)的比率,用戶可以任選其他屬性并畫出對應(yīng)的柱狀圖。在這個過程中,以可視的形式給學(xué)生展示了數(shù)據(jù)預(yù)處理、數(shù)據(jù)格式等和算法相關(guān)的知識[4]。endprint
3.建立決策樹。采用的決策樹分類算法為C4.5,實際上這個算法的Weka實現(xiàn)稱為J4.8,因此,選擇classify標(biāo)簽,單擊choose按鈕,在層級菜單中tree的里面找到J4.8,單擊start,分類器開始工作,然后顯示結(jié)果。結(jié)果的開頭給出了數(shù)據(jù)集概要及評估方法(默認(rèn)10折交叉),先根據(jù)屬性陰晴進(jìn)行分割,然后根據(jù)濕度和刮風(fēng)在第二層次上進(jìn)行分割。如果有被錯誤分割的實例也會被列出。
4.運用模型。WEKA對結(jié)果的一些特殊指標(biāo)提供了圖形化演示和文件導(dǎo)出的靈活功能。右鍵單擊彈出的菜單中的幾個選項,允許用戶以不同的方式可視化所得各種方法的結(jié)果。探索者界面頂部有一個Visualize標(biāo)簽可以顯示數(shù)據(jù)集。右鍵單擊歷史列表中的項目,用戶可以看到樹的結(jié)構(gòu)。
四、用Weka做作業(yè)
數(shù)據(jù)挖掘算法在現(xiàn)實生活中得到了廣泛的應(yīng)用,比如文本分類、醫(yī)學(xué)圖像處理、客戶信息管理等。可以將這些領(lǐng)域中的現(xiàn)實問題提出作為課程作業(yè)布置給學(xué)生,要求他們利用典型的數(shù)據(jù)挖掘算法來解決。但是,學(xué)生需要花費大量的時間去實現(xiàn)這些算法,算法實現(xiàn)后,還要考慮結(jié)果的可視化,再加上有些算法的實現(xiàn)確實有很大的難度,學(xué)生在多次嘗試失敗后容易放棄,更談不上完成作業(yè)了。WEKA,作為全世界公認(rèn)的最好的數(shù)據(jù)分析平臺,不僅提供了大量經(jīng)典機器學(xué)習(xí)算法的實現(xiàn),而且提供了方便的數(shù)據(jù)輸入、結(jié)果輸出和可視化功能,使得學(xué)生集中完成作業(yè),并通過各種算法的對比找出最合適的一個,甚至部分學(xué)生還可以對算法做出一定的改進(jìn)。留給學(xué)生的題目有以下幾個。
1.分析客戶關(guān)系管理。將關(guān)聯(lián)規(guī)則挖掘應(yīng)用于客戶關(guān)系管理的最終目的是努力將潛在客戶轉(zhuǎn)變?yōu)楝F(xiàn)實客戶,將滿意客戶轉(zhuǎn)變?yōu)橹艺\的終生客戶,提高客戶滿意程度,降低市場銷售及宣傳成本,增加利潤率。住房管理數(shù)據(jù)倉庫中的大量數(shù)據(jù)背后蘊含著豐富的有待開采的信息資源,利用關(guān)聯(lián)規(guī)則挖掘的Apriori算法,充分挖掘出這些隱藏的信息,并基于各種參數(shù)對挖掘結(jié)果進(jìn)行評價,為企業(yè)決策提供支持[2]。
2.中文文本分類。根據(jù)我校教學(xué)督評中心提供的學(xué)生對教師的中文評教文本,利用分類的方法找出其評價的傾向性,要求完成特征選擇、分類。引導(dǎo)學(xué)生閱讀相關(guān)論文,實現(xiàn)一些網(wǎng)絡(luò)文本的分類。
3.醫(yī)學(xué)圖像處理。根據(jù)醫(yī)院提供的醫(yī)學(xué)圖像,利用密度聚類算法,在對圖像進(jìn)行預(yù)處理的基礎(chǔ)上,識別其中的細(xì)胞圖像。
五、結(jié)束語
數(shù)據(jù)挖掘中的很多算法比較抽象難懂,設(shè)計的理論知識較多。很多學(xué)校開設(shè)了這門課程,如果實驗環(huán)節(jié)單純依靠學(xué)生自己編程實現(xiàn)算法,有一定難度。學(xué)生也會因為畏難情緒而失去對這門課學(xué)習(xí)的興趣。本文提出的利用Weka平臺作為演示經(jīng)典算法和學(xué)生完成作業(yè)的途徑,收到了比較好的效果。但是,Weka平臺也存在著一些局限性,可以通過其他數(shù)據(jù)挖掘軟件進(jìn)行補充。
參考文獻(xiàn):
[1]Data Mining Practical Machine Learning Tools and Techniques(Second Edition)[M].北京:機械工業(yè)出版社,2007.12,241-285
[2]譚征,孫紅霞,王立宏.基于實例的本科“數(shù)據(jù)挖掘”課程教學(xué)探索[J].計算機教育,2013,(9).
[3]趙陽.Weka系統(tǒng)及其在數(shù)據(jù)挖掘教學(xué)中的應(yīng)用[J].科技信息,2008,(30).
[4]高明霞,方娟,毛國君.開源工具在機器學(xué)習(xí)教學(xué)中的應(yīng)用[J].計算機教育,2009,(2).
[5]李德有,李凌霞,郭瑞波.基于Weka平臺的機器學(xué)習(xí)方法探究[J].電腦知識與技術(shù),2012,(8)endprint